OpenCV库成员——BorderTypes

BorderTypes 枚举

1. 头文件

#include <opencv2/core/base.hpp>

2. 说明

各种边界类型,图像边界用 |表示

3. 枚举器

enum  	cv::BorderTypes {
  cv::BORDER_CONSTANT = 0,
  cv::BORDER_REPLICATE = 1,
  cv::BORDER_REFLECT = 2,
  cv::BORDER_WRAP = 3,
  cv::BORDER_REFLECT_101 = 4,
  cv::BORDER_TRANSPARENT = 5,
  cv::BORDER_REFLECT101 = BORDER_REFLECT_101,
  cv::BORDER_DEFAULT = BORDER_REFLECT_101,
  cv::BORDER_ISOLATED = 16
}
枚举值CPython说明
0BORDER_CONSTANTcv.BORDER_CONSTANTiiiiii|abcdefgh|iiiiiii, 需要指定 ’ i ’ 即就是边沿像素用i替换。
1BORDER_REPLICATEcv.BORDER_REPLICATEaaaaaa|abcdefgh|hhhhhhh 复制边界像素
2BORDER_REFLECTcv.BORDER_REFLECTfedcba|abcdefgh|hgfedcb 反射复制边界像素
3BORDER_WRAPcv.BORDER_WRAPcdefgh|abcdefgh|abcdefg 用另一边的像素来补偿填充
4BORDER_REFLECT_101cv.BORDER_REFLECT_101gfedcb|abcdefgh|gfedcba 以边界为对称轴反射复制像素
5BORDER_TRANSPARENTcv.BORDER_TRANSPARENTuvwxyz|abcdefgh|ijklmno
4BORDER_REFLECT101cv.BORDER_REFLECT101BORDER_REFLECT_101相同
4BORDER_DEFAULTcv.BORDER_DEFAULTBORDER_REFLECT_101相同,为默认填充方式
16BORDER_ISOLATEDcv.BORDER_ISOLATED不看ROI之外部分

4. 使用原理

OpenCV–022: 图像卷积操作

📌 问题:

图像卷积的时候边界像素,不能被卷积操作,原因在于边界像素没有跟 kernel 完全重复或者没有被kernel 的锚点覆盖,所以当 3 × 3 3×3 3×3滤波时,边缘有 1个像素没有被卷积处理, 5 × 5 5×5 5×5时就会有2个边缘像素没有被处理掉, 7 × 7 7×7 7×7就会有3个 …

📢 OpenCV解决方案:

在卷积开始之前增加边缘像素,填充的像素值为0 或者 RGB黑色,比如在 3 × 3 3×3 3×3的四周各填充一个像素的边缘,边缘便会被处理到。在卷积之后再去掉这些边缘。

🔎 opencv中默认的处理方法是:BORDER_DEFAULT
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值