使用cv2.morphologyEx()函数实现灰度图像的顶帽运算和底帽运算
时间: 2024-05-01 19:21:53 浏览: 104
OpenCV实现用morphologyEx进行形态学顶帽运算(C++实现).zip
顶帽运算和底帽运算都是图像形态学中常用的操作,可以通过cv2.morphologyEx()函数来实现。下面是代码示例:
```python
import cv2
import numpy as np
# 读取灰度图像
img = cv2.imread('test.jpg', 0)
# 构造结构元素
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))
# 顶帽运算
tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)
# 底帽运算
blackhat = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel)
# 显示结果
cv2.imshow('Original', img)
cv2.imshow('Tophat', tophat)
cv2.imshow('Blackhat', blackhat)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述代码中,我们首先读取了一张灰度图像,然后构造了一个5x5的矩形结构元素。接着,通过cv2.morphologyEx()函数实现了顶帽运算和底帽运算,并将结果分别保存到了tophat和blackhat变量中。最后,通过cv2.imshow()函数将原图像、顶帽运算结果和底帽运算结果一起显示出来。
阅读全文