简单的图像处理——3. 图像的形态学操作:形态学梯度与顶底帽变换

本文介绍了图像处理中的形态学操作,包括形态学梯度、顶帽变换和底帽变换。通过这些操作可以有效提取图像的边缘轮廓,凸显特定背景上的目标物体。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

回顾

前面我们介绍了图像的形态学操作中的腐蚀膨胀开运算闭运算,这篇文章我们将继续介绍后面的形态学梯度顶底帽变换这几种操作。

同样,我们还是以可爱的小鸟来介绍。
这里写图片描述


形态学梯度

这种方法其实就是膨胀操作与腐蚀操作的差,便于寻找对象的轮廓。针对一些简单的二值图,或者灰度图可能比较好的提取其边缘,但如果当成一个边缘检测的方法,效果却不会很好。

针对二值图与灰度图效果如下:



而针对彩色图,我们分别以10*10与50*50的两个核来进行操作,其效果如下:
这里写图片描述
这里写图片描述

可以发现:鸟的轮廓、后面山的轮廓以及气泡与一些水面上的小沙粒都显现的比较明显,而如果核再变大一些,轮廓线就会相应的变粗,这点从其是膨胀操作与腐蚀操作的差即可看出。


顶帽变换

原图像开操作对象的差。当我们在处理一张图片的时候(例如提取眼底彩照的血管等信息),很多情况需要对这张图片进行一定的预处理,而通常我们就会用顶帽或者底帽变换。

顶帽变换用于凸显暗背景上的亮物体。

对二值图来说,进行顶帽变换或之后底帽变换看起来就像是加一个阴影,有一种立体的效果。


而回到我们的彩图上,分别用两种不同大小的核来做,就是如下美如画的效果:
这里写图片描述

这里写图片描述


底帽变换

闭操作原图像的差值。底帽变换用于凸显用于凸显亮背景上的暗物体。

二值图效果如下,与顶帽变换相比,就是一个方向相反的阴影:


而底帽变换回到我们的彩图上,同样分别用两种不同大小的核来做,效果如下:
这里写图片描述

这里写图片描述

这些都是要针对实际的问题来进行操作的。最后我们来总结一下前面所提到的一系列形态学操作。


Python代码实现

# 开运算
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)

# 闭运算
closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

# 形态学梯度
gradient = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel)

# 顶帽变换
tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)

# 底帽变换
blackhat = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel)

形态学操作总结

下表中,XX表示原图,K表示用于进行相关操作的核。

操作公式性质
膨胀XK={x|K+xx}X⊕K={x|K+x∪x≠∅}扩张XX的边界
腐蚀 XK={x|K+xX}收缩XX的边界
形态学梯度 G(X)=XKXK保留物体的边缘轮廓
开运算XK=(XK)KX∘K=(X⊖K)⊕K平滑轮廓,切断狭窄区域,并消除小的孤岛和尖刺
闭运算XK=(XK)KX∙K=(X⊕K)⊖K平滑轮廓
顶帽变换That(X)=X(XK)That(X)=X−(X∘K)用于凸显暗背景上的亮物体
底帽变换Bhat(X)=(XK)XBhat(X)=(X∙K)−X用于凸显亮背景上的暗物体
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值