이미지의 픽셀값을 2차원 지형으로 정하여, 위에서 아래로 물을 채우는 방식의 알고리즘입니다.
2 알고리즘 상세 설명
이미지를 Grayscale로 변환하면 각 Pixel의 값(0 ~255)은 높고 낮음으로 구분할 수 있을 것입니다. 이것을 지형의 높낮이로 가정하고 높은 부분을 봉우리, 낮은 부분을 계곡이라고 표현할 수 있습니다.
계곡에 물을 붓는다고 생각하면 결국에 물이 넘쳐 섞이는 부분이 생길것입니다. 그 부분에 경계선을 만들어 서로 섞이지 않게 합니다. 바로 그 경계선을 이미지의 구분지점으로 파악하여 이미지를 분할합니다.
원본 이미지
Watersheds Threshold 결과 이미지
Fig. Watersheds Threshold 결과
다채널 이미지의 경우 채널별 조건을 파라미터로 설정하여 최종 이진화 결과를 결정합니다.
3 파라미터 설정 및 사용 방법
멤버함수
파라미터
설 명
SetThresholdMode
ImageProcessing::EThresholdMode
eThresholdMode
IN
Threshold Mode 설정값
Threshold Mode를 설정합니다. Single을 선택하면 하나의 임계 조건에 대한 연산을 진행합니다. Dual And를 선택하면 두 임계 조건 모두 만족 시 최종 결과가 참이 됩니다. Dual Or를 선택하면 두 임계 조건 중 하나라도 만족 시 최종 결과가 참이 됩니다. eThresholdMode - Default Value: EThresholdMode_Single, Recommended Value: EThresholdMode_Single
멤버함수
파라미터
설 명
SetLogicalConditionOfChannels
ImageProcessing::ELogicalConditionOfChannels
eLogicalConditionOfChannels
IN
각 채널의 결과에 대한 논리 연산 방식
채널별 결과들을 어떤 논리 연산 방식으로 처리할지 설정합니다. And를 선택하면 모든 채널의 연산 결과가 참인 경우 최종 결과가 참이 되고, Or를 선택하면 하나의 채널이라도 연산 결과가 참이라면 최종 결과가 참이 됩니다. eCondition - Default Value: ELogicalConditionOfChannels_And, Recommended Value: ELogicalConditionOfChannels_And
멤버함수
파라미터
설 명
SetThreshold
double
f64Threshold
IN
임계값
ImageProcessing::EThresholdIndex
eIndex
IN
임계값 Index
멤버함수
파라미터
설 명
SetThreshold
CMultiVar<double>
mvThreshold
IN
임계값
EThresholdIndex
eIndex
IN
임계값 Index
설정한 Threshold Index에 따라 첫 번째 또는 두 번째 임계값을 설정합니다. Thrshold Index를 First로 설정 시 첫 번째 임계값을 설정하고, Second 설정 시 두 번째 임계값을 설정합니다. eIndex - Default Value: EThresholdIndex_First, Recommended Value: EThresholdIndex_First
멤버함수
파라미터
설 명
SetThreshold
CMultiVar<double>
mvThreshold1
IN
첫 번째 임계값
CMultiVar<double>
mvThreshold2
IN
두 번째 임계값
첫 번째, 두 번째 임계값을 설정합니다. mvThreshold1에 첫 번째 임계값을 설정하고, mvThreshold2에 두 번째 임계값을 설정합니다.
멤버함수
파라미터
설 명
SetLogicalCondition
Base::ELogicalCondition
eThresholdCondition
IN
논리 조건 설정값
ImageProcessing::EThresholdIndex
eIndex
IN
논리 조건 Index
멤버함수
파라미터
설 명
SetLogicalCondition
int64_t
i64ThresholdCondition
IN
논리 조건 설정값
ImageProcessing::EThresholdIndex
eIndex
IN
논리 조건 Index
멤버함수
파라미터
설 명
SetLogicalCondition
CMultiVar<int64_t>
mvThresholdCondition
IN
논리 조건 설정값
ImageProcessing::EThresholdIndex
eIndex
IN
논리 조건 Index
설정한 Threshold Index에 따라 첫 번째 또는 두 번째 논리 조건을 설정합니다. 논리 조건은 Greater(큼), Greater Equal(크거나 같음), Equal(같음), Not Equal(같지 않음), Less Equal(작거나 같음), Less(작음)으로 설정 가능합니다. eIndex - Default Value: EThresholdIndex_First, Recommended Value: EThresholdIndex_First
멤버함수
파라미터
설 명
SetLogicalCondition
CMultiVar<int64_t>
mvThresholdCondition1
IN
첫 번째 논리 조건 설정값
CMultiVar<int64_t>
mvThresholdCondition2
IN
두 번째 논리 조건 설정값
첫 번째, 두 번째 논리 조건을 설정합니다. mvThresholdCondition1에 첫 번째 논리 조건을 설정하고, mvThresholdCondition2에 두 번째 논리 조건을 설정합니다.