有没有一种方法可以使用霍夫线检测器来划定终点?

时间:2019-05-10 15:07:15

标签: python-3.x numpy opencv

我正在使用Hough Line Detector进行图像识别。我发现的问题是,当我打印线的begin(x1,y1)end(x2,y2)坐标时,我得到的坐标位置离图像边缘很远。 例如,我的图像形状为640x480,并且得到类似(-1000,900)的坐标,如果我尝试使用cv2.circle画一个圆,则该圆不显示,因为它在图像外部。有没有办法在图像的边界处停止Hough Line功能?

dst = cv2.Canny(gray, 50, 200)
lines= cv2.HoughLines(dst, 1, math.pi/180.0, 150, np.array([]), 0, 0)
for i in range(a):
   rho = lines[i][0][0]
   theta = lines[i][0][1]
   a = math.cos(theta)
   b = math.sin(theta)
   x0, y0 = a*rho, b*rho
   pt1 = (int(x0+1000*(-b)), int(y0+1000*(a)))
   pt2 = (int(x0-1000*(-b)), int(y0-1000*(a)))

我认为问题在于pt1pt2中的乘法,但是我现在不知道如何避免这种情况并获取与图像边界相对应的起点和终点。 / p>

0 个答案:

没有答案