学习OpenCV 07 边界外推和边界处理
在实现滤波/卷积时,边界像素没有周围像素,这时候OpenCV采用的一种方法是在源图像周围添加虚拟像素,即边界外推。
自定义边框
cv::copyMakeBorder()就是一个为图像创建边框的函数,通过指定两幅图像,第一幅是源图像,第二幅是扩充之后的图像,同时指明填充方法,则这个函数就将第一幅图像填充后的结果保持在第二幅图像中。
void cv::copyMakeBorder(
cv::InputArray src, //源图像
cv::OutputArray dst, //扩充后图像
int top, //上扩充(大小为像素)
int bottom, //下扩充
int left, //左扩充
int right, //右扩充
int borderType, //边界外推类型
const cv::Scalar& value=cv::Scalar() //仅对constant扩充有效,指定扩充颜色,默认黑色
);
实例代码及效果:
int main(int argc, char**argv) {
Mat img, dst1, dst2, dst3, dst4, dst5;
img = imread("D://someph