python opencv提取图片轮廓
时间: 2023-06-30 22:08:38 浏览: 93
在Python中使用OpenCV提取图片的轮廓可以通过以下步骤实现:
1. 导入必要的库:
```python
import cv2
import numpy as np
```
2. 读取图片并转为灰度图像:
```python
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
```
3. 对灰度图像进行二值化处理:
```python
ret,thresh = cv2.threshold(gray,127,255,cv2.THRESH_BINARY)
```
其中,`ret`表示阈值,`thresh`为二值化后的图像。
4. 查找轮廓:
```python
contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
```
其中,`contours`为轮廓,`hierarchy`为轮廓的层次结构。
5. 绘制轮廓:
```python
cv2.drawContours(img, contours, -1, (0,255,0), 3)
```
其中,`img`为原始图像,`contours`为轮廓,`-1`表示绘制所有轮廓,`(0,255,0)`为轮廓颜色,`3`为轮廓线宽度。
完整代码:
```python
import cv2
import numpy as np
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(gray,127,255,cv2.THRESH_BINARY)
contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours, -1, (0,255,0), 3)
cv2.imshow('contours',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
运行后会弹出显示轮廓的窗口。
阅读全文