预备知识

结构元(SE)

1、结构元的中心一般来说是放在其重心位置处,但原则上原点的选择是依赖于你要解决的问题的。
2、对图像操作时,我们要求结构元是矩形阵列。(在结构元的基础上添加较少的背景元素实现)
3、当结构元的中心位于原图像的边界时,要对原图像进行填充操作

2注意点中的填充阵列:

但是其实这样填充下来,只要给背景元素的权值赋0就和原来的一样了。

这个阵列显然和下面的阵列不是一个类型

3注意点中的填充原图像

原理

腐蚀


该表达式表示:B对A的腐蚀使用一个z平移的B包含在A中的所有点z的集合。
效果:

也就是B的中心在A中遍历之后,结构元素中没有背景元素(即全是前景元素)的B中心的点的集合。

膨胀



膨胀是腐蚀的对偶操作。相当于将B的中心沿着所有A的点遍历一遍,得到的B的所有元素的集合。

调用opencv库函数

#include <opencv2/opencv.hpp>
#include <iostream>
#include "windows.h"
#include <stdio.h>using namespace cv;
using namespace std;
int main()
{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);     //字体为绿色Mat srcImage = imread("D:\\opencv_picture_test\\形态学操作\\黑白.jpg");//判断图像是否加载成功if (srcImage.empty()){cout << "图像加载失败!" << endl;return -1;}elsecout << "图像加载成功!" << endl << endl;namedWindow("原图像", WINDOW_NORMAL);     //定义窗口显示属性imshow("原图像", srcImage);//进行腐蚀操作Mat element_erode = getStructuringElement(MORPH_RECT,Size(15,15));   //返回的是内核矩阵Mat dstImage;erode(srcImage, dstImage, element_erode);                    //腐蚀操作//显示效果图imshow("【腐蚀效果图】", dstImage);//进行膨胀操作//获取自定义核Mat element_dilate = getStructuringElement(MORPH_RECT, Size(15, 15));Mat out;//进行膨胀操作dilate(srcImage,out, element_dilate);imshow("【膨胀效果图】", out);waitKey(0);return 0;
}

效果

作用

腐蚀的作用

消除A中比结构元B小的部件。去除黏连像素以及噪声。

膨胀的作用

桥接裂缝,恢复连通性
作用:如图,由于无法实现理想的二值化,使得原本连通的像素集合被
分成不同的连通域,从而影响目标物的提取。可通过膨胀运算使其恢复
连通性。

这种方法比低通滤波有一个直接优点:形态学桥接可以直接得到一个二值化的图,
然而低通滤波则需要经过这样过程:二值图=>灰度图=>二值图。

另外需要了解的知识:


之后的击中击不中变换中将会用到这样的知识。

上面是以二值图为例的,下面我们以灰度图作为例子。
效果:使整个图像变暗且去除了局部较亮的像素

效果:使整个图像变亮且去除了局部较暗的像素

形态学操作——腐蚀与膨胀相关推荐

  1. [图像形态学操作]——腐蚀和膨胀、开闭运算、黑帽礼帽

    形态学转换是基于图像形状的一些简单操作,它通常在二进制图像上执行.腐蚀和膨胀是两个基本的形态学运算符.然后它的变体形式如:开运算.闭运算.礼帽黑帽等. 一.连通性 在图像学当中,图像的最小单位是像素, ...

  2. 图像形态学概要-腐蚀、膨胀、开运算、闭运算、形态学梯度(形态学边缘提取)、顶帽操作、黑帽操作

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 图像形态学中两种最基本的操作就是对图形的腐蚀和膨 ...

  3. 9.1 Python图像处理之图像数学形态学-二值形态学(腐蚀、膨胀、开启、闭合)

    9.1 Python图像处理之图像数学形态学-二值形态学(腐蚀.膨胀.开启.闭合) 文章目录 9.1 Python图像处理之图像数学形态学-二值形态学(腐蚀.膨胀.开启.闭合) 1 算法原理 1.1 ...

  4. 【学习笔记】opencv的python接口 形态学操作 腐蚀 膨胀 通用形态学函数

    腐蚀 img=np.zeros((5,5),np.uint8) img[1:4,1:4]=1 kernel=np.ones((3,1),np.uint8) erosion=cv2.erode(img, ...

  5. opencv进阶学习笔记13:图像形态学操作大全(膨胀,腐蚀,开闭,黑帽,顶帽,梯度)python版

    基础版学习笔记: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 基础版形态学: opencv学 ...

  6. OpenCV图像处理形态学操作腐蚀Erode与膨胀Dilate

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 通俗的说 ...

  7. OpenCV-Python教程:形态学变换~腐蚀和膨胀(erode,dilate)

    原文链接:http://www.juzicode.com/opencv-python-erode-dilate 返回Opencv-Python教程 形态学变换是基于图像形状的变换过程,通常用来处理二值 ...

  8. Halcon形态学处理-腐蚀、膨胀、开运算、闭运算、顶帽运算和底帽运算

    提示:文章参考了网络上其他作者的文章,以及相关书籍,如有侵权,请联系作者. 文章目录 前言 一.腐蚀和膨胀 1.腐蚀 2.膨胀 二.开运算和闭运算 1.开运算 2.闭运算 三.顶帽运算和底帽运算 1. ...

  9. 图像形态学(腐蚀、膨胀、开运算、闭运算、梯度、顶帽、黑帽)

    一.腐蚀: 消除图像中不重要的边缘信息. 二.膨胀: 可以看作为腐蚀的逆过程. 三.开运算: 开运算(open) ,先腐蚀后膨胀的过程.开运算可以用来消除小黑点,在纤细点处分离物体.平滑较大物体的边界 ...

最新文章

  1. 用c语言找出第123个素数,在C语言中查找第N个素数
  2. 吴恩达《Machine Learning》精炼笔记 10:异常检测
  3. L1-056 猜数字 (20 分)
  4. 痛惜!年仅38岁,中科院研究员、博导周传不幸病逝!
  5. Apache Solr solrconfig.xml 中文说明
  6. 它估值 25 亿!被马云领投,是华为“老战友”,网友:也许股价能超茅台!
  7. 《笨方法学习python》学习笔记
  8. 中国石油大学(北京)-《钻井液工艺原理》第三阶段在线作业
  9. html5仿微博代码仿新浪微博,CSS3网页制作实例:模仿新浪微博首页变化_css
  10. 多想和你拉手跳恰恰恰
  11. 基于python的图片比较
  12. 39 项目实战---购物+转账系统
  13. Java 在线编程编译工具上线,直接运行Java代码
  14. Android近距离通信
  15. Dynamics CRM 系统自定义部分的语言翻译
  16. 【UWB 定位】高精度定位
  17. ux pm_如何从学术研究人员过渡到UX研究人员
  18. 【将金令】1.21早评:欧QE独占鳌头,金银高位不休
  19. matlab偏分赋值错误,MATLAB ode45求解高阶微分方程组,出现“无法执行赋值,因为左侧和右侧的元素数目不同”问题...
  20. Indy:Connection Closed Gracefully

热门文章

  1. 教你玩转CSS 居中
  2. 前端初级html\css知识点总结
  3. java 静态方法与实例方法的区别_静态方法与实例方法的区分
  4. js,jq.事件代理(事件委托)复习。
  5. 浏览器缓存原理以及本地存储
  6. CSS--居中方式总结
  7. 让使用MSN就像访问网页一样容易!
  8. Appium环境搭建-完整版
  9. 【第七次JAVA课,java语法基础】课件总结
  10. 2017-2018-2 20179216 《网络攻防与实践》 SQL注入攻击