Opencv+Python笔记(四)图像的形态学处理

文章介绍了图像处理中的腐蚀和膨胀操作,它们分别用于消除噪点和边界值,以及增强目标特征。开运算和闭运算结合了腐蚀和膨胀,分别用于去除毛刺和小孔。此外,礼帽和黑帽变换则用于提取图像中的亮点和暗点。所有这些操作在OpenCV库中都有对应的API函数实现。
摘要由CSDN通过智能技术生成

1.腐蚀与膨胀

膨胀用来处理缺陷问题,把缺陷填补掉,提高亮区面积; 腐蚀用来处理毛刺问题,把毛刺腐蚀掉,降低亮区面积。

腐蚀操作可以消除噪点,同时消除部分边界值,导致目标图像整体缩小。
膨胀操作可以使目标特征值增大,导致目标图像整体放大。

腐蚀的规则就是:kernel覆盖img的区域如果有白色,则把核的中心那个点标注为白色,如果该区域没有白色,则不用处理,这里相当于“&&”且运算
膨胀其实非常类似,只不过它关注的是核形状区域有没有黑色B,如果有,就把锚点涂成黑色
在这里插入图片描述
用1代表黑色0代表白色 对A图进行核为 3 * 3 的腐蚀操作后,中间的0会变成1 同理 对B图进行核为3 * 3的膨胀操作后,中间的1会变成0

Opencv API:

cv2.erode(src, kernel, iterations)  # 腐蚀
cv2.dilate(src, kernel, iterations)  # 膨胀

输入:1.src:要进行操作的图像;2.kernel:核结构;3.iterations:要进行腐蚀或者膨胀的次数,默认为1
输出:操作后得到的图像

卷积核核结构构造

kernel = np.ones((5, 5), np.uint8)  #创建一个大小为 5x5 的全为 1 的矩阵,数据类型为 unsigned int 8。它通常被用作图像处理中的卷积核。

2.开运算和闭运算

开运算是先腐蚀后膨胀(有利于把亮刺腐蚀掉);闭运算是先膨胀后腐蚀(有利于把黑洞膨胀掉)图像比较亮的地方是图像的主体部分

开运算能够除去孤立的小点,毛刺和小桥,而总的位置和形状不便。开运算一般能平滑图像的轮廓,削弱狭窄部分,去掉较细的突出。
在这里插入图片描述

闭运算能够填平小湖(即小孔),弥合小裂缝,而总的位置和形状不变。闭运算也是平滑图像的轮廓,与开运算相反,它一般熔合窄的缺口和细长的弯口,去掉小洞,填补轮廓上的缝隙。
在这里插入图片描述

开运算用于去毛刺 闭运算用于去孔洞

Opencv API:

cv2.morphologyEx(src, op, kernel)

输入:1.src:要进行运算的图像;2.op:进行的操作类型;3.kernel:使用的卷积核类型
输出:开闭运算后得到的图像

3.礼帽与黑帽(顶帽与底帽)

(1)礼帽:取出亮度高的地方
顶帽运算 = 原图像 - 开运算
开运算可以消除暗背景下的高亮区域,那么如果用原图减去开运算结果就可以得到原图中灰度较亮的区域,所以又称白顶帽变换。
在二值图像中取出亮度较高的部分

(2)黑帽:取出亮度低的地方
底帽运算 = 原图像 - 闭运算
闭运算可以删除亮背景下的暗区域,那么用原图减去闭运算结果就可以得到原图像中灰度较暗的区域,所以又称黑底帽变换。
在二值图像中取出亮度较低的部分

Opencv API:

cv2.morphologyEx(src, op, kernel)

参数同上

在这里插入图片描述

参数功能
cv2.MORPH_OPEN开运算
cv2.MORPH_CLOSE闭运算
cv2.MORPH_TOPHAT礼帽运算
cv2.MORPH_BLACKHAT黑帽运算
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值