Python如何实现轮廓提取
时间: 2023-11-05 09:12:59 浏览: 80
Python中可以使用OpenCV库来实现轮廓提取。具体步骤如下:
1. 读入图像并转化为灰度图像。
2. 对图像进行二值化处理,将图像转化为黑白的二值图像。
3. 使用findContours函数提取轮廓。
4. 可以使用drawContours函数将轮廓画出来。
下面是一个简单的示例代码:
```python
import cv2
# 读入图像并转化为灰度图像
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 对图像进行二值化处理
ret, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 提取轮廓
contours, hierarchy = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 绘制轮廓
cv2.drawContours(img, contours, -1, (0, 0, 255), 2)
# 显示结果
cv2.imshow('contours', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,findContours函数的参数含义如下:
- 第一个参数是输入的二值图像。
- 第二个参数是轮廓检索模式,cv2.RETR_TREE表示提取所有轮廓并建立轮廓间的层级关系。
- 第三个参数是轮廓近似方法,cv2.CHAIN_APPROX_SIMPLE表示轮廓的端点进行压缩处理。
drawContours函数的参数含义如下:
- 第一个参数是要绘制轮廓的图像。
- 第二个参数是轮廓列表。
- 第三个参数是要绘制的轮廓索引,-1表示绘制所有轮廓。
- 第四个参数是轮廓的颜色。
- 第五个参数是轮廓的线宽。
阅读全文