找到使用HoughLines OpenCV 绘制的两条线的交点。
找到使用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)
我想要获取所有交点的坐标。