我正在使用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)))
我认为问题在于pt1
和pt2
中的乘法,但是我现在不知道如何避免这种情况并获取与图像边界相对应的起点和终点。 / p>