OpenCV中实现图像形态学的常见操作介绍

图像形态学是图像处理的分支学科,在二值图像处理中占有重要地位、opencv中实现了图像形态学如下常见操作:
-膨胀操作
-腐蚀操作
-开操作
-闭操作
-击中击不中操作
-黑帽操作
-顶帽操作
-梯度操作
在开始相关api与代码演示之前,首先要加载图片然后把图像从彩色图像转换为二值图像,实现代码如下:
结构元素
图像形态学操作,必须有结构元素才可以,不同形状的结构元素对同样的图像进行相同的操作可以得到不同的输出结果,所以在形态学操作中结构元素的选择至关重要。opencv中获取结构元素的相关代码如下:
腐蚀操作
腐蚀操作是将结构元素覆盖下的中心像素点的值用最小值替换,得到结果即为腐蚀操作输出图像,通过opencv api调用实现腐蚀操作的代码如下
运行效果如下:
膨胀操作
膨胀操作是将结构元素覆盖下的中心像素点的值用最大值替换,得到结果即为膨胀操作输出图像,通过opencv api调用实现膨胀操作的代码如下
运行效果如下:
开操作
开操作是首先对图像进行腐蚀操作,然后在对图像进行膨胀操作,开操作可以断开两个对象的连接性。实现对象分离。开操作的代码实现如下:
运行结果如下:
闭操作
闭操作使用结构元素对图像先膨胀后腐蚀,正好跟开操作的顺序相反,但是闭操作绝对不是开操作的反操作结果。闭操作可以消除图像中背景小点。opencv中开操作代码演示如下:
运行结果如下
击中击不中操作(hit and miss)
根据结构元素的选择被击中的区域将会被保留、而没有被击中的区域则被去掉opencv中代码演示如下:
结果显示如下:
黑帽操作
黑帽操作的结果是图像闭操作与源图像之间的不同,opencv中实现图像黑帽操作的代码如下:
结果显示如下:
顶帽操作
顶帽操作是源图像与开操作结果之间的差异,顶帽操作可以显示出图像中区域之间微小不同之处。opencv顶帽操作的代码演示如下:
显示结果如下:
梯度操作
形态学的梯度操作是图像膨胀与腐蚀结果之间的不同,常见的梯度操作是基本梯度-是膨胀与腐蚀结果之间不同。opencv的代码演示如下:
效果显示如下:
函数说明
morphologyex- 形态学操作函数
-第一个参数表示输入图像,通道数目任意,位数可以是8、16、32
-第二个参数表示输出图像,通道数与位数与输入图像一致
-第三个参数表示是那种形态学操作
-第四个参数表示结构元素是什么
上述举例都是基于矩形结构元素5x5窗口大小,此外文章中还定义另外两种结构元素,感兴趣的读者可以自己尝试。


价格战、口水战、补贴战轮番而上 格力空调这个双11费尽了心思
给你2000元, 是选择小米5还是华为荣耀8?
意法半导体(ST)在CCBN上展出Newman电视系统芯片
世界人工智能大会,安恒信息获全球工业互联网大奖“湛卢奖”
全新智能硬件品牌「思麦耳」上线,智慧生活强势来袭
OpenCV中实现图像形态学的常见操作介绍
光纤交换机作为传输介质种类有哪些呢
前方高能!2023开放原子开发者大会亮点攻略,一触即发
退役锂电池回收利用难题待解决 电池全生命周期可溯源
琥珀虚颜上手评测:从此我有了一个二次元女友
智算中心操作系统:智能社会要着力打造的能力底座
AMD CTO:拥抱新摩尔定律新时代!
哪几款蓝牙耳机性价比比较高?四款性价比蓝牙耳机推荐
国产AGV在海外的市场情况怎么样
台积电和三星有什么区别?哪个好
All in PLCnext! PLCnext Technology将在中国深度落地!
实现针对大信号应用的负载共享概念的的参考设计
阻尼片是什么东西_阻尼片的作用
电池组自动点焊机厂家的优势
智慧工厂五大方面及4大典型应用场景讲解