Python图像处理:形态学图像变换操作的两种实现
作者:eastmount。
一个。图像滚筒操作
1。基本原理
Image Top Hat(或Image Top Hat)操作是原始图像减去图像开运算以获得图像噪声的结果。如下图所示:
气缸动作(img)=原图(img)-开模动作(img)
2.函数原型
morphologyEx函数主要用于图像打开操作,是形态学的扩展。函数数组,其 cv2.MORPH_TOPHAT 参数对应于打开操作。原型如下:
dst = cv2.morphologyEx(src, cv2.MORPH_TOPHAT, kernel)
参数 dst 表示处理结果,src 表示原始图像,cv2.MORPH_TOPHAT 表示柱面操作,kernel 表示卷积核。下图显示了一个 5*5 的卷积核,可以使用函数 np.ones ((5,5), np.uint8) 构建。
卷积如下图所示:
3。代码实现
整个代码如下:
#encoding:utf-8
import cv2
import numpy as np
#读取图片
src = cv2.imread('test01.png', 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()
输出如下图所示,可以看到外部噪声被提取出来了。
如果想要更多细节,可以将卷积设置为10*10,如下图所示:
kernel = np.ones((10,10), np.uint8)
result = cv2 .morphologyEx(src,cv2.MORPH_TOPHAT,内核)
两个。黑帽操作示意图
1。基本原理
黑帽图像的运算是被遮挡图像减去原始图像的运算结果,导致图像内出现小孔或者前景色中有小黑点。如下图所示:
黑帽操作(img)=闭操作图像(img)-原始图像(img)
2.函数原型
morphologyEx函数,主要用于图像开运算,是形态学的扩展函数集,其cv2.MORPH_BLACKHAT参数对应开运算。原型如下:
dst = cv2.morphologyEx(src, cv2.MORPH_BLACKHAT, kernel)
参数 dst 表示处理结果,src 表示原始图像,cv2.MORPH_BLACKHAT 表示黑帽操作,kernel表示卷积核。下图显示了一个 5*5 的卷积核,可以使用函数 np.ones ((5,5), np.uint8) 构建。
3。代码实现
整个代码如下:
#encoding:utf-8
import cv2
import numpy as np
#读取图片
src = cv2.imread('test02.png', 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()
输出如下图所示。您可以看到图像内部的黑点被提取出来。
但是里面的四个较大的黑点没有被提取出来。要获得更多细节,您可以将卷积设置为 10*10,如下图所示:
kernel = np.ones((10 ,10), np.uint8)
result = cv2 .morphologyEx(src ,cv2.MORPH_BLACKHAT,核心)
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。