1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 图像形态学(腐蚀 膨胀 开运算 闭运算 梯度 顶帽 黑帽)

图像形态学(腐蚀 膨胀 开运算 闭运算 梯度 顶帽 黑帽)

时间:2022-07-15 00:29:27

相关推荐

图像形态学(腐蚀 膨胀 开运算 闭运算 梯度 顶帽 黑帽)

一、腐蚀:

消除图像中不重要的边缘信息。

二、膨胀:

可以看作为腐蚀的逆过程。

三、开运算:

开运算(open) ,先腐蚀后膨胀的过程。开运算可以用来消除小黑点,在纤细点处分离物体、平滑较大物体的边界的 同时并不明显改变其面积。

四、闭运算:

闭运算(close),先膨胀后腐蚀的过程。闭运算可以用来排除小黑洞。

五、梯度:

形态学梯度(morph-grad),可以突出团块(blob)的边缘,保留物体的边缘轮廓。

六、顶帽:

顶帽(top-hat),将突出比原轮廓亮的部分。

七、黑帽:

黑帽(black-hat),将突出比原轮廓暗的部分。

参考代码如下:

import cv2 as cvimport numpy as np import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False img = cv.imread("./imgs/yh.png")gray_img = cv.cvtColor(img, cv.COLOR_BGR2GRAY)#二值化图像ret, binary = cv.threshold(gray_img, 52, 255, cv.THRESH_BINARY)kernel = np.ones((3,3), np.uint8)#1.腐蚀img1 = cv.erode(binary, kernel)#2.膨胀img2 = cv.dilate(binary, kernel)#3.开运算:先腐蚀,后膨胀opening = cv.morphologyEx(binary, cv.MORPH_OPEN, kernel)#4.闭运算:先膨胀,后腐蚀closeing = cv.morphologyEx(binary, cv.MORPH_CLOSE, kernel)#5.梯度 = 膨胀-腐蚀gradient = cv.morphologyEx(binary, cv.MORPH_GRADIENT, kernel)#6.顶帽 = 原图-开运算结果tophat = cv.morphologyEx(binary, cv.MORPH_TOPHAT, kernel)#7.黑帽 = 闭运算-原图blackhat = cv.morphologyEx(binary, cv.MORPH_BLACKHAT, kernel)#可视化展示til=['二值化图像','图像腐蚀','图像膨胀','开运算','闭运算','梯度','顶帽','黑帽']lis=[binary,img1,img2,opening,closeing,gradient,tophat,blackhat]plt.figure(figsize=(10,4))for i in range(8):plt.subplot(2,4,i+1)plt.imshow(lis[i],cmap='gray')plt.title(til[i])plt.axis('off')plt.show()

结果如下所示:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。