더북(TheBook)

코드 9-3에서 사실 직선을 검출하는 작업은 앞부분에서 Canny() 함수와 HoughLines() 함수를 호출하는 것으로 완료됩니다. 그 뒤에 길게 나타나는 소스 코드는 HoughLines() 함수에 의해 구한 ρθ 파라미터 값을 이용하여 에지 영상에 빨간색 직선을 그리기 위한 코드입니다. 영상 위에 직선을 그리려면 직선의 양 끝점 좌표를 알아야 하기 때문에 ρθ 값을 이용하여 직선상의 두 점 좌표 pt1pt2를 구합니다. 이때 변수 alpha 값을 충분히 크게 설정해야 pt1pt2가 영상 바깥쪽에 위치하며, 자연스러운 직선을 그릴 수 있습니다. 만약 alpha 값을 작게 설정하면 직선의 일부만 그려질 수 있으니 주의해야 합니다.

코드 9-3의 hough_lines() 함수 실행 결과를 그림 9-14에 나타냈습니다. 그림 9-14에서 src는 입력 영상으로 사용한 building.jpg 파일이고, dst는 캐니 에지 검출 영상 위에 허프 변환에 의해 구해진 직선을 함께 표시한 영상입니다. 만약 코드 9-3에서 HoughLines() 함수의 다섯 번째 인자로 지정한 직선 검출 임계값을 250보다 작게 설정하면 더 많은 직선을 확인할 수 있습니다.

▲ 그림 9-14 허프 변환 직선 검출 예제 실행 결과

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.