zoukankan      html  css  js  c++  java
  • 图像边界扩展

    [OpenCV]拓展图像边界

      对图像进行处理时,提取在边界的某些目标时会出现访问越界的错误,一般这种情况有两种解决方案:1.只对不越界的像素进行访问,见数据增强之图像旋转及坐标对应(附代码);2.对图像的边界进行扩展,这里对opencv中提供的图像边界扩展函数进行介绍。

    • 边界的拓展方式
     1 //将边界最相近的像素进复制扩展
     2 * BORDER_REPLICATE: aaaaaa|abcdefgh|hhhhhhh  
     3 //将边界像素进行镜像
     4 * BORDER_REFLECT: fedcba|abcdefgh|hgfedcb  
     5 //将边界像素进行镜像
     6 * BORDER_REFLECT_101: gfedcb|abcdefgh|gfedcba  
     7 //将边界翻转
     8 * BORDER_WRAP: cdefgh|abcdefgh|abcdefg  
     9 //将边界自由赋值
    10 * BORDER_CONSTANT: iiiiii|abcdefgh|iiiiiii with some specified ’i’ 

       以上内容取自OpenCV的帮助文档。其中 “|” 表示的是图像的边界,两个“|”中间是图像的内容,最后一个边界拓展策略还要额外给定一个i值,用于对边界进行赋值。

                     

                    

       上述图像依次是对应的扩展参数进行图像边界扩展结果,其中左上角是原图。

    • 函数原型及参数说明
    void copyMakeBorder( InputArray src, OutputArray dst, int top, int bottom, int left, int right, int borderType, const Scalar& value=Scalar() )  

      src:输入的数组。

      dst:输出的拓展边界后的数组。

      top:在src上边界向上拓展的行数。

      bottom:在src下边界向下拓展的行数。

      left:在src的左边界向左拓展的列数。

      right:在src的右边界向右拓展的列数。

      borderType:上一节中的边界拓展策略中的一个。

      value:当你的边界策略使用的是BORDER_CONSTANT的时候,此处是指边界处填写的常数值。

  • 相关阅读:
    RM报表 实际打印的判断
    ehlib 如何用代码,选中checkbox呢?
    [CF632A]Grandma Laura and Apples
    [洛谷P3693]琪露诺的冰雪小屋
    [CF1065A]Vasya and Chocolate
    [UOJ #52]【UR #4】元旦激光炮
    [UOJ #48]【UR #3】核聚变反应强度
    [UOJ #51]【UR #4】元旦三侠的游戏
    [洛谷P1401]城市
    [洛谷P4722]【模板】最大流 加强版 / 预流推进
  • 原文地址:https://www.cnblogs.com/qinguoyi/p/8359363.html
Copyright © 2011-2022 走看看