码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 边界外推和边界处理--cv::copyMakeBorder()和cv::borderInterpolate()


    OpenCV 边界外推和边界处理

    一、边界外推

    在图像处理的时候,我们会面临对边界的处理问题。 在OpenCV中的滤波操作,得到的输出图像与源图像的形状是一样的。 为了实现这种效果,OpenCV采用的是一种方法是在源图像周围添加虚拟像素。 下面有以下几种方式添加虚拟像素:

    • cv::BORDER_CONSTANT, 为每个边框像素赋予一个相同的值,这个值通过传入的参数给定。
    • cv::BORDER_WARP, 为每个像素分配一个距离,这个距离是像素点到源图像的边缘的距离,然后将距离对边相同距离的像素的值赋予对应的边框像素。
    • cv::BORDER_REPLICATE, 将源图像以外的像素全部赋值为图像边缘像素的值。
    • cv::BORDER_REFLECT, 为边框内每个像素复制了源图像内距离同一个边界 n n n对应像素点的值。
    • cv::BORDER_REFLECT_101,为边框内每个像素复制了源图像内距离同一边界 n + 1 n+1 n+1对应的像素点的值。

    示意图如下所示:
    在这里插入图片描述
    大多数情况下,cv::BORDER_REFLECT_101是OpenCV默认的选项,cv::BORDER_DEFAULT对应的就是cv::BORDER_REFLECT_101。在OpenCV上,cv::copyMakeBorder()函数就是为图像创建边框的函数。

    如下图实验:

    • cv::BORDER_CONSTANT
      在这里插入图片描述
    • cv::BORDER_REPLICATE
    • cv::BORDER_REFLECT
      在这里插入图片描述
    • cv::BORDER_WARP
      在这里插入图片描述

    二、自定义外推

    在某些情况下,我们需要计算某一特定像素所参考的像素的位置。
    举个例子:
    可以在混合的边界条件下计算一个特定像素的值,在一维中使用BORDER_REFLECT_101,在另一个维度中使用BORDER_WRAP:

    float val; = img.at<float>(cv::borderInterpolate(100, img.rows, BORDER_REFLECT_101,
    						   cv::borderInterpolate(-5, img.cols, BORDER_WRAP));
    
    • 1
    • 2

    Reference

    1. Learning OpenCV3: computer vision in C++ with the OpenCV Library
  • 相关阅读:
    ubuntu+docker+pycharm环境深度学习远程炼丹使用教程
    【题解】P6042 「ACOI2020」学园祭
    简易版的新闻应用
    FPGA-结合协议时序实现UART收发器(二):串口发送模块实现uart_tx
    “蔚来杯“2022牛客暑期多校训练营(加赛),签到题MHEJ
    【华为OD机试】HJ26 字符串排序
    Jenkins + GitBlit自动构建
    API是什么?解密API背后的奥秘
    机器学习——机器学习概述
    【LeetCode刷题日志】189.轮转数组
  • 原文地址:https://blog.csdn.net/wuchaohuo724/article/details/126779686
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号