轮廓中点到上边界的距离python
时间: 2023-10-17 07:03:44 浏览: 80
Python求平面内点到直线距离的实现
假设你有一个轮廓的边界点集合 `contours`,你可以使用OpenCV库中的函数 `cv2.boundingRect()` 来获取该轮廓的边界框。然后,你可以通过计算轮廓中点与边界框上边界的距离来获取轮廓中点到上边界的距离。
下面是一个示例代码:
```python
import cv2
# 读取图像并转为灰度图像
img = cv2.imread('contour.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 获取轮廓
contours, hierarchy = cv2.findContours(gray, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 获取第一个轮廓的边界框
x, y, w, h = cv2.boundingRect(contours[0])
# 计算轮廓中点
M = cv2.moments(contours[0])
cx = int(M['m10'] / M['m00'])
cy = int(M['m01'] / M['m00'])
# 计算轮廓中点到上边界的距离
distance = cy - y
print(distance)
```
在这个例子中,我们假设图像中只有一个轮廓。如果你的图像中有多个轮廓,你需要在 `contours` 中遍历每一个轮廓并分别计算距离。
阅读全文