opencv图像处理怎么找轮廓两点的距离
时间: 2023-11-07 22:04:46 浏览: 97
OpenCV在图像中寻找轮廓
要找到轮廓的两点距离,可以使用 OpenCV 中的 `cv2.arcLength()` 和 `cv2.approxPolyDP()` 函数来获取轮廓的顶点,然后使用欧几里得距离公式计算两点之间的距离。以下是一个示例代码:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('image.png')
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 进行二值化处理
ret, thresh = cv2.threshold(gray, 127, 255, 0)
# 获取轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 获取第一个轮廓的顶点
cnt = contours[0]
epsilon = 0.01 * cv2.arcLength(cnt, True)
approx = cv2.approxPolyDP(cnt, epsilon, True)
# 计算两点之间的距离
dist = np.linalg.norm(approx[0] - approx[1])
print(dist)
```
在上面的代码中,我们首先读取图像并将其转换为灰度图像,然后进行二值化处理以获取轮廓。接下来,我们使用 `cv2.arcLength()` 和 `cv2.approxPolyDP()` 函数获取轮廓的顶点,然后使用 `np.linalg.norm()` 函数计算两个顶点之间的欧几里得距离。最后,我们打印出距离。
阅读全文