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);}
形态学梯度处理
这个是顶帽运算的效果
OpenCV探索之路——图像形态学处理(膨胀、腐蚀、开运算、闭运算)相关推荐
- OpenCV与图像处理学习六——图像形态学操作:腐蚀、膨胀、开、闭运算、形态学梯度、顶帽和黑帽
OpenCV与图像处理学习六--图像形态学操作:腐蚀.膨胀.开.闭运算.形态学梯度.顶帽和黑帽 四.图像形态学操作 4.1 腐蚀和膨胀 4.1.1 图像腐蚀 4.1.2 图像膨胀 4.2 开运算与闭运 ...
- opencv 实现图像形态学操作 膨胀和腐蚀 开闭运算 形态学梯度 顶帽和黑帽
图像膨胀和腐蚀 图解 原理及python实现 更多内容:图像膨胀和腐蚀原理及python实现 opencv中膨胀和腐蚀函数 dilation = cv.dilate(img, kernel) # 膨胀 ...
- 2020.11.01 使用OpenCV进行图像形态学操作(开、闭、梯度)【OpenCV C++】
进行基础的图像形态学操作练习 (开操作.闭操作.梯度.顶帽.黑帽操作) 源代码: // #include <opencv2/opencv.hpp> #include <iostrea ...
- C# EMGU 3.4.1学习笔记(三)综合示例:形态学滤波(腐蚀/膨胀、开运算/闭运算、顶帽运算/黑帽运算)
以下是<OpenCV3编程入门>中6.4.9的示例程序的C# + EMGU 3.4.1版: 有任何问题或疑问,欢迎交流探讨. using System; using System.Coll ...
- opencv c++ 图像形态学操作
1.图像的形态学操作 包括图像的腐蚀.膨胀.开.闭.形态学梯度.顶帽.黑帽.分支主题.结构元素等操作. 具体概念参考:(41条消息) 图像处理-形态学处理_Good@dz的博客-CSDN博客_图像处理 ...
- OpenCv之图像形态学(笔记08)
腐蚀:其原理是在原图的小区域内取局部最小值.这个核也叫结构元素,因为形态学操作其实也是应用卷积来实现的,结构元素可以是矩形.椭圆.十字架,可以用cv2.getStructuringElement()来 ...
- opencv python 图像形态学操作/图像腐蚀/图像膨胀/开运算/闭运算/顶帽/黑帽
Morphological Transformations 1图像腐蚀 腐蚀的基本思想:侵蚀前景物体的边界(总是试图保持前景为白色):内核在图像中滑动(如在2D卷积中).只有当内核下的所有像素都是1时 ...
- 图像形态学变换 膨胀和腐蚀 开闭运算 边缘检测 opencv实现
一. 官方文档: dilate(膨胀): 函数原型 ↑ 参数说明 ↑ cv.erode(腐蚀)的使用和其类似. 二. 实验:膨胀和腐蚀 # Writer : wojianxinygcl@163.com ...
- OpenCV3学习(4.3)——图像形态学(膨胀,腐蚀)
在图像处理技术中,有一些的操作会对图像的形态发生改变,这些操作一般称之为形态学操作(phology).数学形态学是基于集合论的图像处理方法,最早出现在生物学的形态与结构中,图像处理中的形态学操作用于图 ...
最新文章
- SQL Server 中print Datetime类型问题
- VSCODE打开一个文件,另一个文件就关闭的问题的解决方法
- SpringBoot - 优雅的实现【异步编程】
- 物联网、云计算、大数据、人工智能之间有怎样的联系和区别?
- win7任务栏计算机图标,Win7系统任务栏怎么添加显示桌面图标 显示桌面图标如何放到win7任务栏...
- cnn池化层输入通道数_(pytorch-深度学习系列)CNN中的池化层-学习笔记
- nodejs 进阶:图片缩小
- css常用属性总结:颜色和单位
- 修改Yarn的全局安装和缓存位置
- SSH Iptables访问控制
- 五年来,开源论坛软件MyBB共修复100多个漏洞
- 书写「简历」时,需要规避的错误
- mysql最多多少个索引_在一个球的周围,最多能摆放多少个相同尺寸的球在它周围?...
- #脚本实现宠物动作行为_短视频剧情创作方法有哪些?爆款短视频的标配,只需88个脚本模板...
- 5、手把手教React Native实战之盒子模型BoxApp
- 问题分析与解决——ADSL错误代码(转)
- 用麦咖啡(mcafee)打造自己的安全服务器
- 浅谈摄某网绕过图片水印查看下载无水印图片
- 华为交换机端口配置删除_华为交换机配置_华为交换机怎么清除端口下所有配置?...
- SylixOS中断延迟队列
热门文章
- 第4章 Selenium2-java WebDriver API (三)
- android studio crashlytics,Crashlytics发现了一个无效的API密钥 – AndroidStudio构建
- java datediff函数_JPA Criteria 中 DATEDIFF 函数的使用
- Golang Hash MD4
- Java大对象lob_JavaEE JDBC 读写LOB大对象
- mysql系统特性_MySQL · 引擎特性 · InnoDB 事务系统
- 你知道 ES6~ES12等叫法是怎么来的吗?
- SQL SERVER 系列(2)数据库的创建、修改和删除
- .NET Core 3.0带来桌面支持(Windows Only)
- 2012中国移动社交游戏市场盈利模式探讨