利用python cv2库,输入一张图片,提取出这张图片中暗部分的边框
时间: 2024-06-09 11:11:39 浏览: 89
python opencv如何实现图片绘制
可以通过以下步骤来实现:
1. 导入cv2库和numpy库
```
import cv2
import numpy as np
```
2. 读取输入的图片
```
img = cv2.imread('input.jpg', cv2.IMREAD_GRAYSCALE)
```
3. 对图像进行直方图均衡化,增强图像的对比度
```
equ = cv2.equalizeHist(img)
```
4. 对增强后的图像进行高斯滤波平滑处理,去除噪声干扰
```
blur = cv2.GaussianBlur(equ, (5, 5), 0)
```
5. 对平滑后的图像进行边缘检测,提取出边缘
```
canny = cv2.Canny(blur, 30, 150)
```
6. 对提取出的边缘进行二值化处理,只保留边缘部分
```
ret, thresh = cv2.threshold(canny, 127, 255, cv2.THRESH_BINARY)
```
7. 对二值化后的图像进行膨胀处理,增强边缘的连通性,得到最终的边框
```
kernel = np.ones((5,5),np.uint8)
dilation = cv2.dilate(thresh, kernel, iterations = 1)
```
完整代码如下:
```
import cv2
import numpy as np
img = cv2.imread('input.jpg', cv2.IMREAD_GRAYSCALE)
equ = cv2.equalizeHist(img)
blur = cv2.GaussianBlur(equ, (5, 5), 0)
canny = cv2.Canny(blur, 30, 150)
ret, thresh = cv2.threshold(canny, 127, 255, cv2.THRESH_BINARY)
kernel = np.ones((5,5),np.uint8)
dilation = cv2.dilate(thresh, kernel, iterations = 1)
cv2.imshow('Edges', dilation)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,输入的图片路径需要根据实际情况修改。运行代码后,会弹出一个名为"Edges"的窗口,显示提取出的边框。
阅读全文