学习OpenCV 07 边界外推和边界处理

本文介绍了在OpenCV中处理边界问题的方法,特别是使用`copyMakeBorder()`函数进行边界外推。通过示例代码展示了如何为图像添加自定义边框,并解释了不同填充方法的原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值