Shen-Castan Edge Detector
1 개요
Canny Edge Detector 와 알고리즘의 큰 기조는 유지하면서 노이즈에 더 강건하고 Edge를 잘 살려주는 알고리즘입니다.
2 알고리즘 상세 설명
-
IIR 계열의 Infinite Symmetric Exponential Filter 를 사용하여 Smoothing 을 수행합니다.
-
Smoothing 이미지와 원본의 차를 이용하여 Binary Laplacian 이미지를 생성합니다.
-
Binary Laplacian 이미지로 False Zero-crossing Suppression 을 수행합니다.
-
Adaptive Gradient 를 활용하여 Edge 후보군을 산출합니다.
-
Hysteresis Threshold 를 통해 최종적인 Edge 를 검출합니다.
입력 이미지 | 결과 이미지 |
---|---|
![]() |
![]() |
위의 예시는 예제 이미지에 Threshold Low, High를 각각 3, 5 로 설정 후 실행한 예시입니다.
CShenCastanEdgeDetector shenEdge;
CFLImage fliSourceImage;
shenEdge.SetSourceImage(fliSourceImage);
shenEdge.SetSmoothingMode(CShenCastanEdgeDetector::ESmoothingMode_ISEF);
shenEdge.SetPValue(0.5);
shenEdge.SetThreshold(CMultiVar<double>(3, 5));
shenEdge.Execute();
3 파라미터 설정 및 사용 방법
멤버함수 | 파라미터 | 설 명 | ||
---|---|---|---|---|
SetSmoothingMode | ESmoothingMode | eSmoothingMode | IN | Smoothing 모드 설정자 |
GetSmoothingMode | ESmoothingMode | eSmoothingMode | OUT | Smoothing 모드 접근자 |
CShenCastanEdgeDetector::ESmoothingMode_ISEF
- Infinite Symmetric Exponential Filter 를 사용하여 노이즈 평활화 전처리를 수행합니다.
CShenCastanEdgeDetector::ESmoothingMode_None
- 노이즈 평활화 전처리를 수행하지 않습니다.
멤버함수 | 파라미터 | 설 명 | ||
---|---|---|---|---|
SetPValue | double | f64PValue | IN | P Value 설정자 |
GetPValue | double | f64PValue | OUT | P Value 접근자 |
전처리를 수행할 Infinite Symmetric Exponential Filter 의 P Value 를 설정합니다.
f64PValue
- Default Value : 0.5, Recommended Value : 0.5 ~ 1.5
멤버함수 | 파라미터 | 설 명 | ||
---|---|---|---|---|
SetThreshold | double | f64Min, f64Max | IN | 임계값 설정자 |
CMultiVar<double> | flmvMinMax | IN | 임계값 설정자 | |
GetThreshold | CMultiVar<double> | flmvMinMax | OUT | 임계값 접근자 |
Hysteresis Threshold 를 수행하기 위한 Low, high Threshold 를 나타냅니다.