欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > 【OpenCV 基础知识 22】扩展边界并填充

【OpenCV 基础知识 22】扩展边界并填充

2024/10/25 12:25:27 来源:https://blog.csdn.net/gust2013/article/details/139608935  浏览:    关键词:【OpenCV 基础知识 22】扩展边界并填充

CopyMakeBorder
复制图像并且制作边界。(处理边界卷积)

函数定义如下:

void cvCopyMakeBorder( const CvArr* src, CvArr*dst, CvPoint offset, int bordertype, CvScalar value=cvScalarAll(0) );
  • src:输入图像。

  • dst:输出图像。

  • offset: 输入图像(或者其 ROI)欲拷贝到的输出图像长方形的左上角坐标(或者左下角坐标,如果以左下角为原点)。长方形的尺寸要和原图像的尺寸的 ROI 分之一匹配。

  • bordertype: 已拷贝的原图像长方形的边界的类型: IPL_BORDER_CONSTANT - 填充边界为固定值,值由函数最后一个参数指定。 IPL_BORDER_REPLICATE - 边界用上下行或者左右列来复制填充。(其他两种IPL 边界类型, IPL_BORDER_REFLECT 和 IPL_BORDER_WRAP 现已不支持)。

  • value: 如果边界类型为IPL_BORDER_CONSTANT 的话,那么此为边界像素的值。 函数 cvCopyMakeBorder 拷贝输入二维阵列到输出阵列的内部并且在拷贝区域的周围制作一个指定类型的边界。函数可以用来模拟和嵌入在指定算法实现中的边界不同的类型。例如:和opencv 中大多数其他滤波函数一样,一些形态学函数内部使用复制边界类型,但是用户可能需要零边界或者填充为 1 或 255 的边界。

program cv_CopyMakeBorder;{$APPTYPE CONSOLE}
{$R *.res}usesSystem.SysUtils,ocv.highgui_c,ocv.core_c,ocv.core.types_c,ocv.imgproc_c,uResourcePaths;constfilename = cResourceMedia + 'opencv_logo_with_text.png';varimage: pIplImage = nil;dst: pIplImage = nil;dst2: pIplImage = nil;begintryimage := cvLoadImage(filename, 1);WriteLn(Format('[i] image: %s', [filename]));dst := cvCreateImage(cvSize(image^.width + 20, image^.height + 20), image^.depth, image^.nChannels);dst2 := cvCreateImage(cvSize(image^.width + 20, image^.height + 20), image^.depth, image^.nChannels);cvNamedWindow('original', CV_WINDOW_AUTOSIZE);cvNamedWindow('IPL_BORDER_CONSTANT', CV_WINDOW_AUTOSIZE);cvNamedWindow('IPL_BORDER_REPLICATE', CV_WINDOW_AUTOSIZE);cvCopyMakeBorder(image, dst, cvPoint(10, 10), IPL_BORDER_CONSTANT, cvScalar(250));cvCopyMakeBorder(image, dst2, cvPoint(10, 10), IPL_BORDER_REPLICATE, cvScalar(250));cvShowImage('original', image);cvShowImage('IPL_BORDER_CONSTANT', dst);cvShowImage('IPL_BORDER_REPLICATE', dst2);cvWaitKey(0);cvReleaseImage(&image);cvReleaseImage(&dst);cvReleaseImage(&dst2);cvDestroyAllWindows();excepton E: Exception doWriteLn(E.ClassName, ': ', E.Message);end;end.

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com