더북(TheBook)

OpenCV에서 캐니 에지 검출 알고리즘은 Canny() 함수에 구현되어 있습니다. Canny() 함수는 두 가지 형태로 정의되어 있고, 각각의 함수 원형은 다음과 같습니다.

void Canny(InputArray image, OutputArray edges,
           double threshold1, double threshold2,
           int apertureSize = 3, bool L2gradient = false);
void Canny(InputArray dx, InputArray dy, OutputArray edges,
           double threshold1, double threshold2,
           bool L2gradient = false);

image

8비트 입력 영상

dx

입력 영상의 x 방향 미분 영상. CV_16SC1 또는 CV_16SC3

dy

입력 영상의 y 방향 미분 영상. CV_16SC1 또는 CV_16SC3

edges

출력 에지 영상. 입력 영상과 크기가 같은 8비트 단일 채널 영상입니다.

threshold1

히스테리시스 에지 검출을 위한 첫 번째 임계값

threshold2

히스테리시스 에지 검출을 위한 두 번째 임계값

apertureSize

그래디언트 계산을 위한 소벨 마스크 크기

L2gradient

그래디언트 크기 계산 시 L2 노름을 사용하려면 true를 지정합니다. 이 값이 false이면 L1 노름을 사용합니다.

 

앞에 나열된 두 개의 Canny() 함수 중에서 첫 번째 함수는 일반 영상을 입력으로 전달하여 에지를 검출할 때 사용하고, 두 번째 함수는 이미 x 방향과 y 방향의 미분 영상을 가지고 있을 때 사용합니다. Canny() 함수를 사용할 때에는 두 개의 임계값을 적절하게 지정하는 것이 중요합니다. threshold1threshold2 인자에 지정하는 두 개의 임계값은 캐니 에지 검출기의 히스테리시스 에지 트래킹 단계에서 사용됩니다. 보통 threshold1 인자에는 낮은 임계값을 지정하고, threshold2 인자에는 높은 임계값을 지정합니다. 낮은 임계값과 높은 임계값은 보통 1:2 또는 1:3의 비율로 지정합니다. apertureSizeL2gradient 인자는 기본값이 있으므로 생략할 수 있습니다.

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