OPenCV版本:4.4
IDE:VS2017

功能描述

通过一个特定的结构元素腐蚀一个图像。图像腐蚀的过程类似于一个卷积的过程,源图像矩阵A以及结构元素B,B在A矩阵上依次移动,每个位置上B所覆盖元素的最小值替换B的中心位置值(即锚点处),完成整个腐蚀的过程。

注意:所谓的腐蚀与膨胀的对象是针对图像中的白色元素所说的。看成是图像中的物体话会理解反。

算法通俗理解:腐蚀算法使二值图像缩小一圈,删除对象边界的某些像素,其运算过程就是使用用3X3的结构元素,扫描二值图像的每一个像素,用结构元素与其覆盖的二值图像做“与”运算,如果都为1,结构图像的该像素为1,否则为0。结果就是使二值图像减小一圈。

函数使用一个指定的核元素去腐蚀源图像,内核有一个可定义的 锚点,我们叫他内核中心点,腐蚀操作时,获取内核覆盖区域最小像素值,并代替锚点的像素,最小值通过以下公式获取:
dst(x,y)=min⁡(x′,y′):element(x′,y′)≠0src(x+x′,y+y′)\texttt{dst} (x,y) = \min _{(x',y'): \, \texttt{element} (x',y') \ne0 } \texttt{src} (x+x',y+y') dst(x,y)=(x′,y′):element(x′,y′)​=0min​src(x+x′,y+y′)
函数支持就地模式,腐蚀操作可以迭加使用多次,在多通道图像的情况下,每个通道独立处理。

函数原型

CV_EXPORTS_W void erode( InputArray src, OutputArray dst, InputArray kernel,Point anchor = Point(-1,-1), int iterations = 1,int borderType = BORDER_CONSTANT,const Scalar& borderValue = morphologyDefaultBorderValue() );

参数描述

  • 参数 src 输入图像;通道的数量可以是任意的,但是深度值应该是以下之一:
    CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.

  • 参数 dst 和源图像同样大小和类型的输出图像。

  • 参数 kernel 用于腐蚀的结构元素;如果element=Mat(),是一个3 x 3的矩形结构元素. Kernel 可以通过使用getStructuringElement来创建。

  • 参数 anchor 素中的锚点的位置,默认是值(-1,-1),也就是说锚点在元素的中心位置。

  • 参数 iterations 腐蚀的迭代次数。

  • 参数 borderType像素外推方法。参见#BorderTypes, BORDER_WRAP不支持。

  • 参数 borderValue 固定边缘的情况下的边缘值。

    参考 dilate, morphologyEx, getStructuringElement

源码示例:

#include <iostream>
#include <opencv2/opencv.hpp>int main()
{cv::Mat image = cv::imread("D:\\OpenCVtest\\images\\juice.png");if (image.empty()){std::cout << "image read failed!" << std::endl;cv::waitKey(0);return 0;}cv::Mat imageDst;//自定义核cv::Mat element = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(8, 8));cv::imshow("原图", image);cv::erode(image, imageDst, element);cv::imshow("腐蚀", imageDst);cv::waitKey(0);return 0;
}

运行结果:

可见果汁杯边缘变粗,水果的颜色变深,边缘变粗。

OpenCV图像腐蚀函数erode()的使用相关推荐

  1. OpenCV——图像腐蚀

    图像的腐蚀过程与图像的卷积操作类似,都需要模板矩阵来控制运算的结果,在图像的腐蚀和膨胀中这个模板矩阵被称为结构元素.与图像卷积相同,结构元素可以任意指定图像的中心点,并且结构元素的尺寸和具体内容都可以 ...

  2. OpenCV图像缩放函数resize()的使用

    OPenCV版本:4.4 IDE:VS2017 功能描述 简述:缩放一个图像 函数把源图像缩放大或缩放小到指定的大小,注意初始的dst的类型或大小不用考虑,而是从src,dsize,fx, 和fy获取 ...

  3. OpenCV图像修复函数inpaint()

    前言 在实际应用或者是工程当中,经常需要对图像进行修复,在OpenCV中提供了能够对含有较少"污染"或者水印的图像进行修复的inpaint()函数 函数原型 void cv::in ...

  4. OpenCV——图像修复函数intpaint()使用详解

    函数原型: inpaint( src, inpaintMask,inpaintRange, flags ) 函数作用是用flags方法和inpaintMask掩膜在考虑每个点邻域圆形半径时修复图像sr ...

  5. 详解图像形态学操作之图形的腐蚀和膨胀的概念和运算过程,并利用OpenCV的函数erode()和函数dilate()对图像进行腐蚀和膨胀操作

    图像形态学中两种最基本的操作就是对图形的腐蚀和膨胀,可以说,形态学中的中高级操作都是建立在这两种操作之上.通过这两种基本的运算可以去除图像中的噪声,分割出独立的区域或者将两个区域连接在一起. 关于图像 ...

  6. 【OpenCV 4开发详解】图像腐蚀

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

  7. 图像腐蚀 java_OpenCV3 图像膨胀 dilate、腐蚀 erode、提取图像中的条形码 JAVA 实现...

    关于 JAVA 学习 OpenCV 的内容,函数讲解,案例代码内容我均整理在 GitHub[OpenCV3-Study-JAVA ]上 下面代码中所需的项目结构,图片,请访问 GitHub 获取. 代 ...

  8. opencv学习笔记(2017年8月21日)之图像腐蚀操作

    最近在看毛星云那本<opencv3编程入门>,但是那本书配套代码,老是在我的vs2017和opencv3.3.0版本里编译出错,一直不知道什么原因,就是图片老是显示灰色,且闪退.不是图片路 ...

  9. OpenCV-Python学习(18)—— OpenCV 图像几何变换之图像平移(cv.warpAffine)

    1. 学习目标 学习图像的平移矩阵: 学习 OpenCV 图像平移函数. 2. 图像的平移矩阵 平移是物体位置在水平和垂直方向的移动. 像素点 (x,y) 沿 x 轴平移 dx.沿 y 轴平移 dy, ...

最新文章

  1. MySQL8与PG10:新版本下的较量谁更胜一筹?
  2. java宠物小精灵,简单的Java口袋妖怪扑灭模拟器
  3. 视窗宽高offset、client、scroll
  4. 返回index.html页面
  5. Oracle 制造死锁和查询死锁
  6. 淘宝弹性布局方案lib-flexible实践
  7. python保存图片到指定路径_使用Python将不同大小照片制作为GIF动画2
  8. 4轮拿下字节Offer,面试题复盘(含答案)
  9. 源代码可以从应用提取码_大规模下加速源代码分析
  10. python爬虫模拟点击下拉菜单和_python+selenium爬虫过程中的模拟点击问题
  11. MockWebServer--环境
  12. uniapp 引入外部链接js
  13. 这个案例你可以直接拿去用。
  14. linux下doc转docx
  15. 如何使用中国知网查询文献,并自动生成参考文献格式引文?
  16. 2021高考倒计时HTML源码,最新、最全2021高考倒计时日历(可编辑、可打印)
  17. Linux bc命令
  18. 打开SQL2000安装包没有弹出安装界面
  19. javascript匿名函数的各种执行形式
  20. echarts柱状图x,y轴对应多条数据(可自定义)

热门文章

  1. boost::mp11::mp_power_set相关用法的测试程序
  2. GDCM:dicom文件固定方向的测试程序
  3. boost::pointer_traits用法实例
  4. Boost:双图bimap与Boost类型的测试程序
  5. Boost:基于Boost的优先调度器程序
  6. VTK:PolyData之Reflection
  7. OpenCV提炼角点位置的实例(附完整代码)
  8. OpenGL无边界的纹理实例
  9. C语言任何基数转换为十进制(附完整源码)
  10. QT实现Media Player(媒体播放器)