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 //颜色)