赞
踩
目录
前面介绍了 形态学处理——图像开运算与图像闭运算,其中:
图像开运算:先腐蚀,后膨胀。一般会平滑物体的轮廓、断开较窄的狭颈并消除细的突出物。
图像闭运算:先膨胀,后腐蚀。同样也会平滑轮廓的一部分。但与开操作相反,它通常会弥合较窄的间断和细长的沟壑,消除小的孔洞,填补轮廓线中的断裂。
图像顶帽(或图像礼帽)运算是原始图像减去图像开运算的结果,得到图像的噪声。如下图所示:
顶帽运算:原始图像 — 图像开运算
图像顶帽运算使用函数 morphologyEx() ,其参数 cv2.MORPH_TOPHAT 对应顶帽运算。
morphologyEx() 函数形式如下:
dst = cv2.morphologyEx(src, cv2.MORPH_TOPHAT, kernel)
其中,参数:
dst 表示处理的结果;
src 表示原图像;
cv2.MORPH_TOPHAT 表示顶帽运算;
kernel 表示卷积核。
例如,下图表示 55 的卷积核,可以采用函数 np.ones((5,5), np.uint8) 构建。
(1)卷积核大小为 55
代码如下所示:
- #encoding:utf-8
- import cv2
- import numpy as np
-
- #读取图片
- src = cv2.imread('test5.bmp', cv2.IMREAD_UNCHANGED)
-
- #设置卷积核
- kernel = np.ones((5,5), np.uint8)
-
- #图像闭运算
- result = cv2.morphologyEx(src, cv2.MORPH_TOPHAT, kernel)
-
- #显示图像
- cv2.imshow("src", src)
- cv2.imshow("result", result)
-
- #等待显示
- cv2.waitKey(0)
- cv2.destroyAllWindows()
运行结果如下图所示:
(2)卷积核大小为 1515
代码如下所示:
- #encoding:utf-8
- import cv2
- import numpy as np
-
- #读取图片
- src = cv2.imread('test5.bmp', cv2.IMREAD_UNCHANGED)
-
- #设置卷积核
- kernel = np.ones((15,15), np.uint8)
-
- #图像闭运算
- result = cv2.morphologyEx(src, cv2.MORPH_TOPHAT, kernel)
-
- #显示图像
- cv2.imshow("src", src)
- cv2.imshow("result", result)
-
- #等待显示
- cv2.waitKey(0)
- cv2.destroyAllWindows()
运行结果如下图所示:
图像黑帽运算是图像闭运算操作减去原始图像的结果,得到图像内部的小孔,或者前景色中的小黑点。如下图所示:
黑帽运算:闭运算 — 原始图像
图像黑帽运算使用函数 morphologyEx() ,其参数 cv2.MORPH_BLACKHAT 对应黑帽运算。
morphologyEx() 函数形式如下:
dst = cv2.morphologyEx(src, cv2.MORPH_BLACKHAT, kernel)
其中,参数:
dst 表示处理的结果;
src 表示原图像;
cv2.MORPH_BLACKHAT 表示黑帽运算;
kernel 表示卷积核。
例如,下图表示 55 的卷积核,可以采用函数 np.ones((5,5), np.uint8) 构建。
(1)卷积核大小为 55
代码如下所示:
- #encoding:utf-8
- import cv2
- import numpy as np
-
- #读取图片
- src = cv2.imread('test6.bmp', cv2.IMREAD_UNCHANGED)
-
- #设置卷积核
- kernel = np.ones((5,5), np.uint8)
-
- #图像闭运算
- result = cv2.morphologyEx(src, cv2.MORPH_BLACKHAT, kernel)
-
- #显示图像
- cv2.imshow("src", src)
- cv2.imshow("result", result)
-
- #等待显示
- cv2.waitKey(0)
- cv2.destroyAllWindows()
运行结果如下图所示:
(2)卷积核大小为 1515
代码如下所示:
- #encoding:utf-8
- import cv2
- import numpy as np
-
- #读取图片
- src = cv2.imread('test6.bmp', cv2.IMREAD_UNCHANGED)
-
- #设置卷积核
- kernel = np.ones((15,15), np.uint8)
-
- #图像闭运算
- result = cv2.morphologyEx(src, cv2.MORPH_BLACKHAT, kernel)
-
- #显示图像
- cv2.imshow("src", src)
- cv2.imshow("result", result)
-
- #等待显示
- cv2.waitKey(0)
- cv2.destroyAllWindows()
运行结果如下图所示:
[1] https://blog.csdn.net/Eastmount/article/details/83692456
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。