使用cv2.morphologyEx()函数实现二值图像的开运算和闭运算
时间: 2024-05-01 20:21:59 浏览: 11
开运算和闭运算是图像处理中常用的形态学操作,可以用于去除噪声、填补孔洞等。使用cv2.morphologyEx()函数可以实现这两种操作。具体实现方法如下:
1. 开运算
开运算可以通过先腐蚀后膨胀来实现。代码如下:
```
import cv2
import numpy as np
img = cv2.imread('binary_image.jpg', 0)
# 定义结构元素
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))
# 开运算
opened = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
cv2.imshow('original', img)
cv2.imshow('opened', opened)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
2. 闭运算
闭运算可以通过先膨胀后腐蚀来实现。代码如下:
```
import cv2
import numpy as np
img = cv2.imread('binary_image.jpg', 0)
# 定义结构元素
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))
# 闭运算
closed = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
cv2.imshow('original', img)
cv2.imshow('closed', closed)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,cv2.getStructuringElement()函数用于定义结构元素,cv2.MORPH_RECT表示矩形结构元素。