더북(TheBook)

HoughLines() 함수의 첫 번째 인자 image에는 보통 Canny() 함수 등을 이용하여 구한 에지 영상을 지정합니다. HoughLines() 함수는 image 영상에서 0이 아닌 픽셀을 이용하여 축적 배열을 구성합니다. 직선 파라미터 정보를 받아 올 lines 인자에는 보통 vector<Vec2f> 또는 vector<Vec3f> 자료형의 변수를 지정합니다. vector<Vec2f> 자료형을 사용할 경우 ρθ 값이 저장되고, vector<Vec3f> 자료형을 사용할 경우 ρθ 값 외에 축적 배열에서의 누적 값을 함께 얻어 올 수 있습니다. rhotheta 인자는 ρθ 값의 해상도를 조정하는 용도로 사용됩니다. 예를 들어 rho에 1을 지정하면 ρ 값을 1픽셀 단위로 설정하며, theta에 CV_PI / 180을 지정하면 θ를 1° 단위로 구분합니다. 결국 rhotheta 인자는 HoughLines() 함수 내부에서 사용할 축적 배열의 크기를 결정하는 역할을 합니다. threshold 인자에는 축적 배열에서 직선으로 판단할 임계값을 지정하며, 이 값이 작으면 더 많은 직선이 검출됩니다.

HoughLines() 함수를 사용하여 영상에서 직선을 검출하는 예제 코드를 코드 9-3에 나타냈습니다. 코드 9-3의 hough_lines() 함수에서는 Canny() 함수로 에지 영상을 구하고, 이 영상을 HoughLines() 함수 입력으로 사용하여 직선을 검출합니다. 그리고 HoughLines() 함수가 반환하는 직선 파라미터 정보를 이용하여 영상 위에 빨간색 직선을 그려서 화면에 나타냅니다. hough_lines() 함수가 정의된 소스 파일과 사용된 영상 파일은 내려받은 예제 파일 중 ch09/hough 프로젝트에서 확인할 수 있습니다.

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