OpenCV学习——图像处理之形态学操作

发布时间:2022-08-19 13:24

概念:图像的邻域、连通性

OpenCV学习——图像处理之形态学操作_第1张图片
OpenCV学习——图像处理之形态学操作_第2张图片 OpenCV学习——图像处理之形态学操作_第3张图片

 

 

膨胀与腐蚀

OpenCV学习——图像处理之形态学操作_第4张图片
膨胀和腐蚀为 相反 的一对操作。dilate (膨胀) erode(腐蚀)都是 形态学的滤波

 

腐蚀:

腐蚀是对图像中的高亮(白色)区域进行腐蚀,即求局部区域最小值的操作。
下图的示例是用 3*3 的算 子对二值图像进行腐蚀操作,求取对应位置的 8 邻域的最小值并输出:
OpenCV学习——图像处理之形态学操作_第5张图片
腐蚀作用消除物体边界点,使目标 缩小,可以 消除小于结构元素的噪声点
腐蚀函数: cv2.erode()
函数原型:dst=cv2.erode(img,kernel,iterations)
img:要处理的图像
kernel:核结构
iterations:腐蚀的次数,默认是1

 

膨胀:

膨胀是对图像中的高亮(白色)区域进行膨胀,即求局部区域最大值的操作,膨胀运算是腐蚀的逆运算。
膨胀作用:将与物体接触的所有背景点合并到物体中,使目标 增大,可 添补目标中的孔洞
膨胀函数: cv2.dilate()
函数原型:dst=cv2.dilate(img,kernel,iterations)
img:要处理的图像
kernel:核结构
iterations:膨胀的次数,默认是1
代码:
img = cv.imread('test.jpg')
kernel = np.ones((5, 5), np.uint8) #创建核结构
erosion = cv.erode(img, kernel)
dilate = cv.dilate(img, kernel)
cv.imshow('erosion', erosion)
cv.imshow('dilate', dilate)
cv.waitKey(0)

 

 

开闭运算

OpenCV学习——图像处理之形态学操作_第6张图片
OpenCV学习——图像处理之形态学操作_第7张图片
开闭运算函数: cv2.morphologyEx()
函数原型:dst=cv2.morphologyEx(img,op,kernel)
img:要处理的图像
op:处理方式:若进行开运算,则设为cv2.MORPH_OPEN,若进行闭运算,则设为cv2.MORPH_CLOSE
kernel:核结构
代码:
img = cv.imread('test.jpg')
kernel = np.ones((10, 10), np.uint8)
open = cv.morphologyEx(img, cv.MORPH_OPEN, kernel)
close = cv.morphologyEx(img, cv.MORPH_CLOSE, kernel)
cv.imshow('open', open)
cv.imshow('close', close)
cv.waitKey(0)

 

 

礼帽和黑帽

OpenCV学习——图像处理之形态学操作_第8张图片
礼帽和黑帽运算函数:cv2.morphologyEx()
函数原型:dst=cv2.morphologyEx(img,op,kernel)
img:要处理的图像
op:处理方式:若进行礼帽运算,则设为cv2.MORPH_TOPHAT,若进行黑帽运算,则设为cv2.MORPH_BLACKHAT
kernel:核结构
代码:
img = cv.imread('test.jpg')
kernel = np.ones((10, 10), np.uint8)
top = cv.morphologyEx(img, cv.MORPH_TOPHAT, kernel)
black = cv.morphologyEx(img, cv.MORPH_BLACKHAT, kernel)
cv.imshow('top', top)
cv.imshow('black', black)
cv.waitKey(0)

 

 

总结:

OpenCV学习——图像处理之形态学操作_第9张图片

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号