python 检测二值化图像中的如何得到白色曲线的终点和起始点
时间: 2024-04-30 10:17:21 浏览: 111
A*路径算法python实现
您可以使用OpenCV库中的findContours函数来检测二值化图像中的白色曲线。该函数可以帮助您找到所有的轮廓,并且可以确定每个轮廓的起始和终止点。您可以使用cv2.RETR_EXTERNAL参数只检测最外面的轮廓,然后您可以使用cv2.CHAIN_APPROX_SIMPLE参数只存储轮廓的端点。下面是一个示例代码:
```python
import cv2
# 读取二值化图像
img = cv2.imread('binary_image.png', cv2.IMREAD_GRAYSCALE)
# 查找轮廓
contours, hierarchy = cv2.findContours(img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 循环遍历每个轮廓
for cnt in contours:
# 获取轮廓的起始和终止点
start_point = tuple(cnt[cnt[:,:,0].argmin()][0])
end_point = tuple(cnt[cnt[:,:,0].argmax()][0])
# 在原始图像上绘制起始和终止点
cv2.circle(img, start_point, 5, (0, 0, 255), -1)
cv2.circle(img, end_point, 5, (0, 0, 255), -1)
# 显示结果
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,我们使用了cv2.circle函数在原始图像上绘制了起始和终止点,并使用了cv2.imshow函数显示了结果。
阅读全文