找到使用HoughLines OpenCV 绘制的两条线的交点。

20 浏览
0 Comments

找到使用HoughLines OpenCV 绘制的两条线的交点。

如何使用OpenCV的Hough线段算法获取线段交点?

以下是我的代码:

import cv2
import numpy as np
import imutils
# 读取图像并进行处理
im = cv2.imread('../data/test1.jpg')
gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 60, 150, apertureSize=3)
img = im.copy()
# 使用Hough线段算法检测线段
lines = cv2.HoughLines(edges,1,np.pi/180,200)
# 绘制检测到的线段
for line in lines:
    for rho,theta in line:
        a = np.cos(theta)
        b = np.sin(theta)
        x0 = a*rho
        y0 = b*rho
        x1 = int(x0 + 3000*(-b))
        y1 = int(y0 + 3000*(a))
        x2 = int(x0 - 3000*(-b))
        y2 = int(y0 - 3000*(a))
        cv2.line(img,(x1,y1),(x2,y2),(0,255,0),10)
# 显示结果图像
cv2.imshow('houghlines',imutils.resize(img, height=650))
cv2.waitKey(0)
cv2.destroyAllWindows()

输出结果:

[输出图片](https://i.stack.imgur.com/I31Xz.png)

我想要获取所有交点的坐标。

0