形态学的基本操作在图片中的应用

一、形态学——腐蚀操作 (缩小、变细)

import cv2
import numpy as np

img_pig = cv2.imread('pig.png')
cv2.imshow('image_pig',img_pig)
cv2.waitKey(0)
cv2.destroyAllWindows()

def cv_show(name, img):
    cv2.imshow(name, img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

# 腐蚀的核是5*5大小的
kernel = np.ones((5,5),np.uint8)
erosion1 = cv2.erode(img_pig,kernel,iterations=2)
erosion2 = cv2.erode(img_pig,kernel,iterations=4)
erosion3 = cv2.erode(img_pig,kernel,iterations=6)
res = np.hstack((erosion1,erosion2,erosion3))
cv_show('pig', res)

结果:

c3e3e5fc89124247a3bd146991d9bb63.png

二、膨胀操作(扩大,变粗)

kernel = np.ones((3,3),np.uint8)
dilate_1 = cv2.dilate(img_pig,kernel,iterations=1)
dilate_2 = cv2.dilate(img_pig,kernel,iterations=3)
dilate_3 = cv2.dilate(img_pig,kernel,iterations=5)
res = np.hstack((dilate_1,dilate_2,dilate_3))
cv_show('pig_1', res)

结果:

ea6d027023414a7c9c0a3f934859441b.png

三、开运算(先腐蚀,后膨胀 不带刺)

kernel = np.ones((30,30),np.uint8)
opening = cv2.morphologyEx(img_pig, cv2.MORPH_OPEN, kernel)
cv_show("opening", opening)

结果:

c48feaa702154a8ba2b0f8c89fadf921.png

四、闭运算(先膨胀,后腐蚀 刺变大,并且腐蚀不掉)

kernel = np.ones((30,30),np.uint8)
closing = cv2.morphologyEx(img_pig,cv2.MORPH_CLOSE,kernel)
cv_show("closing", closing)

结果:

ed3a7e632fb14e2a9f858921d6c2e151.png

五、梯度运算(梯度 = 膨胀——腐蚀)

kernel = np.ones((10,10),np.uint8)
dilate_1 = cv2.dilate(img_pig,kernel,iterations=5)
erosion1 = cv2.erode(img_pig,kernel,iterations=5)
gradient = cv2.morphologyEx(img_pig, cv2.MORPH_GRADIENT,kernel)
cv_show('tidu', gradient)

结果:

cf9ab95159b7458c906233b91de7814f.png

六、礼貌与黑帽(原始输入-开运算结果:执行结果,只有刺)

tophat = cv2.morphologyEx(img_pig, cv2.MORPH_TOPHAT,kernel)
cv_show('tophat', tophat)

结果:

bd51d2c88169499fa06b3ba799a2bb02.png

七、黑帽(没有刺,只剩下轮廓)

blackhat = cv2.morphologyEx(img_pig, cv2.MORPH_BLACKHAT,kernel)
cv_show('blackhat', blackhat)

结果:

ad3f830313424f7a800e1f3aef0d2ebc.png

对图像的处理当中,值得注意的是,在代码中设置合适的核的大小,以及迭代次数的多少,对图像的处理结果是有重要的影响的,所以在处理图像时,需要根据所需要的要求来对=代码参数做出合理的调整。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值