《OpenCV轻松入门:面向Python》读书笔记
作者:李立宗
出版社:电子工业出版社
出版时间:2019-05
第8章 形态学操作
8.4 开运算
8.4.1 定义
开运算进行的操作是先将图像腐蚀,再对腐蚀的结果进行膨胀。开运算可以用于去噪、计数等。
例如,在图8-14中,通过先腐蚀后膨胀的开运算操作实现了去噪,其中:
图8-14 实现去噪的开运算
从图8-14中可以看到,原始图像在经过腐蚀、膨胀后实现了去噪的目的。
除此以外,开运算还可以用于计数。例如,在对图8-15中的区域进行计数前,可以利用开运算将连接在一起的不同区域划分开,其中:
图8-15 实现计数的开运算
8.4.2 函数
通过将函数cv2.morphologyEx()中操作类型参数op设置为“cv2.MORPH_OPEN”,可以实现开运算。其语法结构如下:
opening=cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)
8.4.3 程序示例
【例8.7】使用函数cv2.morphologyEx()实现开运算。
import cv2
import numpy as np
img1=cv2.imread("opening.bmp")
img2=cv2.imread("opening2.bmp")
k=np.ones((10,10),np.uint8)
r1=cv2.morphologyEx(img1,cv2.MORPH_OPEN,k)
r2=cv2.morphologyEx(img2,cv2.MORPH_OPEN,k)
cv2.imshow("img1",img1)
cv2.imshow("result1",r1)
cv2.imshow("img2",img2)
cv2.imshow("result2",r2)
cv2.waitKey()
cv2.destroyAllWindows()
8.4.4 结果
图8-16 【例8.7】对应的开运算结果- 图(a)是原始图像img1。
- 图(b)是原始图像img1经过开运算得到的图像r1。
- 图(c)是原始图像img2。
- 图(d)是原始图像img2经过开运算得到的图像r2。
网友评论