더북(TheBook)

OpenCV는 기본적인 허프 변환 직선 검출 방법 외에 확률적 허프 변환(probabilistic Hough transform)에 의한 직선 검출 방법도 제공합니다. 확률적 허프 변환 방법은 직선의 방정식 파라미터 ρθ를 반환하는 것이 아니라 직선의 시작점과 끝점 좌표를 반환합니다. 즉, 확률적 허프 변환 방법은 선분을 찾는 방법입니다. OpenCV에서 확률적 허프 변환 방법은 HoughLinesP() 함수에 구현되어 있습니다. HoughLinesP() 함수 원형은 다음과 같습니다.

void HoughLinesP(InputArray image, OutputArray lines,
                 double rho, double theta, int threshold,
                 double minLineLength = 0, double maxLineGap = 0);

image

8비트 단일 채널 입력 영상. 주로 에지 영상을 지정합니다.

lines

선분의 시작점과 끝점의 정보(x1, y1, x2, y2)를 저장할 출력 벡터

rho

축적 배열에서 ρ 값의 해상도(픽셀 단위)

theta

축적 배열에서 θ 값의 해상도(라디안 단위)

threshold

축적 배열에서 직선으로 판단할 임계값

minLineLength

검출할 선분의 최소 길이

maxLineGap

직선으로 간주할 최대 에지 점 간격

 

HoughLinesP() 함수에서 검출된 선분 정보가 저장되는 lines 인자에는 보통 vector<Vec4i> 자료형의 변수를 지정합니다. 각각의 선분 정보는 Vec4i 자료형으로 저장되고, 하나의 Vec4i 객체에는 선분 시작점의 x 좌표와 y 좌표, 선분 끝점의 x 좌표와 y 좌표가 저장됩니다. rho, theta, threshold 인자의 의미와 설정 방법은 HoughLines() 함수와 동일합니다. maxLineGap 인자는 일직선상의 직선이 잡음 등 영향으로 끊어져 있을 때, 두 직선을 하나의 직선으로 간주하고자 할 때 사용합니다.

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