opencv 如何画出两条线的中心线
时间: 2023-06-01 19:07:53 浏览: 70
可以使用HoughLines函数进行直线检测,然后通过计算两条直线的中点来得到两条线的中心线。具体实现可以参考以下代码:
```
import cv2
import numpy as np
# 读取图片
img = cv2.imread('test.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 边缘检测
edges = cv2.Canny(gray, 50, 150, apertureSize=3)
# 直线检测
lines = cv2.HoughLines(edges, 1, np.pi / 180, 100)
# 绘制直线
for line in lines:
rho, theta = line[0]
a = np.cos(theta)
b = np.sin(theta)
x0 = a * rho
y0 = b * rho
x1 = int(x0 + 1000 * (-b))
y1 = int(y0 + 1000 * (a))
x2 = int(x0 - 1000 * (-b))
y2 = int(y0 - 1000 * (a))
cv2.line(img, (x1, y1), (x2, y2), (0, 0, 255), 2)
# 计算中心线
if len(lines) == 2:
rho1, theta1 = lines[0][0]
rho2, theta2 = lines[1][0]
a1, b1 = np.cos(theta1), np.sin(theta1)
a2, b2 = np.cos(theta2), np.sin(theta2)
x0 = (rho1*b2 - rho2*b1) / (a1*b2 - a2*b1)
y0 = (rho2*a1 - rho1*a2) / (a1*b2 - a2*b1)
x = int(x0)
y = int(y0)
cv2.circle(img, (x, y), 5, (0, 255, 0), 2)
# 显示图片
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码首先对图片进行边缘检测,然后使用HoughLines函数进行直线检测,并绘制直线。最后通过计算两条直线的中点,得到两条线的中心线,并在图片上绘制这条中心线。
相关推荐
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)