Canny Edge Detector
1 개요
Canny Edge 검출 알고리즘을 이용하여 이미지의 윤곽을 찾아내는 알고리즘입니다.
2 알고리즘 상세 설명
Threshold Low/High 값을 기준으로 대상 픽셀이 엣지 부분인지 판별하여 이미지의 윤곽을 찾아내는 알고리즘입니다.
엣지 판별 알고리즘은 노이즈에 취약하기 때문에 Preprocessing 을 Gaussian 으로 설정하여 노이즈를 감소시켜 더 나은 결과를 획득할 수 있습니다.
Source Image | Destination Image |
---|---|
![]() |
![]() |
Fig. Canny Edge Detector 동작 실행
3 파라미터 설정 및 사용 방법
동작을 위한 최소한의 기본 설정 파라미터는 아래와 같습니다.
멤버함수 | 파라미터 | 설 명 | ||
---|---|---|---|---|
SetConvolutionMode | EConvolutionMode | eMode | IN | 전처리 타입을 설정합니다. |
전처리 타입을 설정합니다. EConvolutionMode_Normal 설정 시 전처리를 진행하지 않으며, EConvolutionMode_Gaussian 설정 시 가우시안 합성곱 전처리를 진행합니다.
eMode
- Default Value: EConvolutionMode_Gaussian
멤버함수 | 파라미터 | 설 명 | ||
---|---|---|---|---|
SetThreshold | double | f64Min, f64Max | IN | 최소 & 최대 임계값 |
SetThreshold | CMultiVar<double> | mvMinMax | IN | 최소 & 최대 임계값 |
최소 & 최대 임계값을 설정합니다.
f64Min, f64Max
- Default Value: 40, 128
4 예제 코드
CCannyEdgeDetector CannyEdge;
CFLImage fliSourceImage;
CannyEdge.SetSourceImage(fliSourceImage);
CFLImage fliDestinationImage;
CannyEdge.SetDestinationImage(fliDestinationImage);
CannyEdge.SetConvolutionMode(CCannyEdgeDetector::EConvolutionMode_Gaussian);
CannyEdge.SetThreshold(CMultiVar<double>(30, 120));
CannyEdge.Execute();