Примените фильтры к Hough Line Detection - PullRequest
0 голосов
/ 17 апреля 2019

В моем приложении я использую Hough Line Detection для обнаружения линий внутри изображения. То, что я пытаюсь сделать, это извлечь только линии, которые составляют границу и углы каждого квадрата шахматной доски. Как я могу применить фильтры, чтобы получить четкий вид линий? Моя идея состоит в том, чтобы применить фильтры, чтобы проверить угол между каждой линией (90 градусов) или расстояние, чтобы получить только те линии, которые имеют значение. Конечной целью будет получить пересечение между этими линиями, чтобы получить координаты каждого квадрата.

Код:

chessBoard = cv2.imread('img.png')
gray = cv2.cvtColor(chessBoard,cv2.COLOR_BGR2GRAY)
dst = cv2.Canny(gray, 50, 200)
lines= cv2.HoughLines(dst, 1, math.pi/180.0, 100, np.array([]), 0, 0)
a,b,c = lines.shape
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)) )
    cv2.line(chessBoard, pt1, pt2, (0, 255, 0), 2, cv2.LINE_AA)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...