OpenCV探索之路(四):膨胀、腐蚀、开闭运算

腐蚀和膨胀是最基本的形态学运算。

腐蚀和膨胀是针对白色部分(高亮部分)而言的。

膨胀就是对图像高亮部分进行“领域扩张”,效果图拥有比原图更大的高亮区域;腐蚀是原图中的高亮区域被蚕食,效果图拥有比原图更小的高亮区域。

膨胀

膨胀就是求局部最大值的操作,从图像直观看来,就是将图像光亮部分放大,黑暗部分缩小。

#include<opencv2\opencv.hpp>
#include<opencv2\highgui\highgui.hpp>

using namespace std;
using namespace cv;

//膨胀
int main()
{
Mat img = imread("lol1.jpg");
namedWindow("原始图", WINDOW_NORMAL);
imshow("原始图", img);
Mat out;
//获取自定义核
Mat element = getStructuringElement(MORPH_RECT, Size(15, 15)); //第一个参数MORPH_RECT表示矩形的卷积核,当然还可以选择椭圆形的、交叉型的
//膨胀操作
dilate(img, out, element);
namedWindow("膨胀操作", WINDOW_NORMAL);
imshow("膨胀操作", out);
waitKey(0);

}

可以看到,图像原来光亮的部分被放大了,黑暗的部分被缩小了。

腐蚀

#include<opencv2\opencv.hpp>
#include<opencv2\highgui\highgui.hpp>

using namespace std;
using namespace cv;

//腐蚀
int main()
{
Mat img = imread("lol1.jpg");
namedWindow("原始图", WINDOW_NORMAL);
imshow("原始图", img);
Mat out;
//获取自定义核
Mat element = getStructuringElement(MORPH_RECT, Size(15, 15)); //第一个参数MORPH_RECT表示矩形的卷积核,当然还可以选择椭圆形的、交叉型的
//腐蚀操作
erode(img, out, element);
namedWindow("腐蚀操作", WINDOW_NORMAL);
imshow("腐蚀操作", out);
waitKey(0);

}

可以看到,图像原来黑暗的部分被放大了,明亮的部分被缩小了。

开运算:先腐蚀再膨胀,用来消除小物体

闭运算:先膨胀再腐蚀,用于排除小型黑洞

形态学梯度:就是膨胀图与俯视图之差,用于保留物体的边缘轮廓。

顶帽:原图像与开运算图之差,用于分离比邻近点亮一些的斑块。

黑帽:闭运算与原图像之差,用于分离比邻近点暗一些的斑块。

opencv里有一个很好的函数getStructuringElement,我们只要往这个函数传相应的处理参数,就可以进行相应的操作了,使用起来非常方便。

下面列举一下相应的操作宏定义。

#include<opencv2\opencv.hpp>
#include<opencv2\highgui\highgui.hpp>

using namespace std;
using namespace cv;

//高级形态学处理
int main()
{
Mat img = imread("lol1.jpg");
namedWindow("原始图", WINDOW_NORMAL);
imshow("原始图", img);
Mat out;
//获取自定义核
Mat element = getStructuringElement(MORPH_RECT, Size(15, 15)); //第一个参数MORPH_RECT表示矩形的卷积核,当然还可以选择椭圆形的、交叉型的

//高级形态学处理,调用这个函数就可以了,具体要选择哪种操作,就修改第三个参数就可以了。这里演示的是形态学梯度处理
morphologyEx(img, out, MORPH_GRADIENT, element);
namedWindow("形态学处理操作", WINDOW_NORMAL);
imshow("形态学处理操作", out);
waitKey(0);

}

形态学梯度处理

这个是顶帽运算的效果

(0)

相关推荐

  • 【从零学习OpenCV 4】两图像间的像素操作

    重磅干货,第一时间送达 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍<从零学习OpenCV 4>.为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通 ...

  • (1条消息) OpenCV图像处理实际案例(二)

    本博客算法及代码参考自贾志刚老师的<OpenCV图像处理-小案例实战>,若涉及侵权问题,望通知,会第一时间删除. 功能要求: 从如下图片中找出所有直线.  解决方案一: 直接进行霍夫直线检 ...

  • (7条消息) OpenCV绘制文字、图形

    文章目录 一.文字putText 二.线line 三.矩形rectangle 四.圆circle 五.椭圆ellipse() color问题:图形的颜色会受到图像通道数的影响.如图像是灰度图,那么图形 ...

  • OpenCV根据轮廓查找精准定位圆形

    经过多次试验,发现利用OpenCV的霍夫圆变换查找出来的圆,其圆心位置并不准确,而且参数调节较为麻烦.于是想到利用轮廓查找的方式来进行圆检测,我们可以通过判断轮廓的外接矩形的横纵比来判断该轮廓是否为圆 ...

  • 图像特征之傅里叶描述子

    使用C++.opencv获取轮廓的傅里叶描述子 傅里叶描述子是一种图像特征,具体来说,是一个用来描述轮廓的特征参数.其基本思想是用物体边界信息的傅里叶变换作为形状特征,将轮廓特征从空间域变换到频域内, ...

  • Halcon之膨胀,腐蚀,开闭运算

    膨胀:对边界点进行扩充,填充空洞,使边界向外部扩张的过程. 腐蚀:消除物体边界点,使边界向内部收缩的过程,把小于结构元素的物体去除掉. 开运算:先腐蚀后膨胀的过程称为开运算,作用:去除孤立的小点,毛刺 ...

  • 膨胀、腐蚀、开、闭运算,你这么解释,小学生都看得懂了

    膨胀.腐蚀.开.闭运算,你这么解释,小学生都看得懂了! 看过我前面一些章节内容的小伙伴肯定已经不止一次遇到过这几个词了.对图像的形态学处理也避不开这几个.但是想要准确理解他们的意思似乎不是那么简单.首 ...

  • 四墓库的闭墓与开墓诀

    ​关注公众号 四墓库的闭墓与开墓 昵称Sh8ZE 阅729 转14 2018-11-29 关注 暮库的闭开能断出命主的很多事情,比如结婚离婚,初次破身灾病财运等等,是命理界的秘中之秘,通常不会传授.今 ...

  • 详解四墓库的闭墓与开墓,八字不传之秘!

    暮库的闭开能断出命主的很多事情,比如结婚离婚,初次破身灾病财运等等,是命理界的秘中之秘,通常不会传授.今天瑞鑫为了回馈粉丝的支持,公开这一批断方法. 辰戌丑未为四库,为土的专值月令,辰丑为湿土,是泥沙 ...

  • 阴阳六经及阖枢开闭解释

    足太阳膀胱经解析 足太阳膀胱经,就是足三阳经的"开".<素问·灵兰秘典论>曰:"膀胱者,州都之官,津液藏焉,气化则能出矣."什么意思呢? 州都:州, ...

  • 蒲公英十四期 · 建开组破冰丨感知你我 温暖前行

    蒲导读 12月26日下午,蒲公英女性领导力提升共建计划第十四期(下称蒲公英十四期)建开组开启线上破冰活动.跨越千山万水,只为与你相遇. 本文长度约968字,阅读全文大概需要4分钟. 让种子飞舞-蒲公英 ...

  • 一切气病,先开四关。开四关真的这么重要吗???

    "四关"之名, zui早见于<灵枢·九针十二原>篇,其文说:"五脏有六腑,六腑有十二原,十二原出于四关,四关主治五脏."这里的"四关&qu ...

  • 美丽吉安:暮春四月小蜡花开 洁白如雪气味芬芳

    小蜡花开如雪,芬芳了暮春四月.4月27日,在江西吉安城南市民广场内,一串串像爆米花的小蜡花在青翠的树篱丛中盛情绽放,洁白如雪.气味芬芳,让人陶醉.(摄/肖勇)

  • 京剧锣鼓:四平调的开法

    长按二维码,即可购买 京剧锣鼓:四平调的开法 四平调属于二黄调性系统.它开唱得第一个过门与二黄原板一样(生旦皆同),只是在开口后就不同了.因此四平调的开法与二黄原板一样,常用的是扎多乙与夺头. 因为四 ...