python opencv 求出轮廓的长度
时间: 2023-07-07 10:13:54 浏览: 58
在Python的OpenCV中,可以使用`cv2.arcLength()`函数来计算轮廓的长度。该函数的语法如下:
```python
cv2.arcLength(curve, closed)
```
其中,`curve`表示输入的轮廓,`closed`表示轮廓是否闭合。如果`closed`为`True`,则认为轮廓是闭合的,否则认为轮廓是开放的。
下面是一个示例代码,展示了如何计算轮廓的长度:
```python
import cv2
# 读取图像
img = cv2.imread('contour.png')
# 转换为灰度图像
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)
# 计算轮廓长度
for contour in contours:
length = cv2.arcLength(contour, True)
print('Length of contour:', length)
```
需要注意的是,`cv2.findContours()`函数会返回所有的轮廓,因此需要在循环中对每个轮廓计算长度。另外,对于开放的轮廓,由于无法确定轮廓的结束点,因此无法准确计算轮廓的长度。