Я работаю над распознаванием изображений, используя 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
, но я не знаю, как яможно избежать этого и получить начальную и конечную точки, которые соответствуют границе изображения.