Code前端首页关于Code前端联系我们

Python图像处理:形态学图像变换操作的两种实现

terry 2年前 (2023-09-25) 阅读数 54 #后端开发

作者:eastmount。

一个。图像滚筒操作

1。基本原理

Image Top Hat(或Image Top Hat)操作是原始图像减去图像开运算以获得图像噪声的结果。如下图所示:

气缸动作(img)=原图(img)-开模动作(img)

Python 图像处理:两种实现图像形态学转化运算

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) 构建。

Python 图像处理:两种实现图像形态学转化运算

卷积如下图所示:

Python 图像处理:两种实现图像形态学转化运算

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()

输出如下图所示,可以看到外部噪声被提取出来了。

Python 图像处理:两种实现图像形态学转化运算

如果想要更多细节,可以将卷积设置为10*10,如下图所示:

kernel = np.ones((10,10), np.uint8)
result = cv2 .morphologyEx(src,cv2.MORPH_TOPHAT,内核)

Python 图像处理:两种实现图像形态学转化运算

两个。黑帽操作示意图

1。基本原理

黑帽图像的运算是被遮挡图像减去原始图像的运算结果,导致图像内出现小孔或者前景色中有小黑点。如下图所示:

黑帽操作(img)=闭操作图像(img)-原始图像(img)

Python 图像处理:两种实现图像形态学转化运算

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) 构建。

Python 图像处理:两种实现图像形态学转化运算

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()

输出如下图所示。您可以看到图像内部的黑点被提取出来。

Python 图像处理:两种实现图像形态学转化运算

但是里面的四个较大的黑点没有被提取出来。要获得更多细节,您可以将卷积设置为 10*10,如下图所示:

kernel = np.ones((10 ,10), np.uint8)
result = cv2 .morphologyEx(src ,cv2.MORPH_BLACKHAT,核心)

Python 图像处理:两种实现图像形态学转化运算

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门