opencv笔记十七(解决图像外围边缘3*3矩阵无法计算问题)BORDER

opencv笔记十七(解决图像外围边缘3*3矩阵无法计算问题)BORDER_第1张图片opencv笔记十七(解决图像外围边缘3*3矩阵无法计算问题)BORDER_第2张图片

 

opencv笔记十七(解决图像外围边缘3*3矩阵无法计算问题)BORDER_第3张图片

BORDER_REPLICATE:复制法,也就是复制最边缘像素。

如上图,红色区域为src的最边界像素,蓝色区域是扩充的边界,我们将边缘扩大了5个像素(right=5),蓝色区域的宽度就是5,复制了5次红色区域的值

这种方式也就是OpenCV中的中值滤波medianBlur采用的边界处理方式

 

BORDER_REFLECT_101:对称法,也就是以最边缘像素为轴,对称。

下面我们看图

绿色区域是src最边界的像素,蓝色区域是我们扩充的5个像素的扩充边界,而红色区域就是蓝色区域在src的对称部分

 这种方式也是OpenCV边界处理的默认方式(BORDER_DEFAULT=BORDER_REFLECT_101)

也是filter2D,blur,GaussianBlur,bilateralFilter的默认处理方式,所以这种方式在边界处理中应用还是非常广泛的

BORDER_CONSTANT:常量法。

常量法就是以一个常量像素值(由参数 value给定)填充扩充的边界值,这种方式在仿射变换,透视变换中非常常见

如下图,

我们使用了默认的value,黑色填充了边界,所以红色区域的扩充的5个像素宽的边界是黑色的

 

 

 

给图像添加边缘API:

copyMakeBorder(     Mat src, // 输入图像 

                                    Mat dst, // 添加边缘图像 - 

                                    int top, // 边缘长度,一般上下左右都取相同值, 

                                    int bottom, 

                                    int left, 

                                    int right, 

                                    int borderType // 边缘类型 

                                    Scalar value //颜色)

 

你可能感兴趣的:(opencv,opencv+vs基础教程)