Watersheds Threshold Marker

1 개요

이미지의 픽셀값을 2차원 지형으로 정하여, 위에서 아래로 물을 채우는 방식의 알고리즘입니다.

2 알고리즘 상세 설명

이미지를 Grayscale로 변환하면 각 Pixel의 값(0 ~255)은 높고 낮음으로 구분할 수 있을 것입니다. 이것을 지형의 높낮이로 가정하고 높은 부분을 봉우리, 낮은 부분을 계곡이라고 표현할 수 있습니다. 계곡에 물을 붓는다고 생각하면 결국에 물이 넘쳐 섞이는 부분이 생길것입니다. 그 부분에 경계선을 만들어 서로 섞이지 않게 합니다. 바로 그 경계선을 이미지의 구분지점으로 파악하여 이미지를 분할합니다. Watersheds Threshold Marker 알고리즘의 경우, Otsu Threshold 를 사용하여 Minima 영역을 구합니다.

원본 이미지 Watersheds Threshold Marker 결과 이미지
Source Result
Fig. Watersheds Threshold Marker 결과

다채널 이미지의 경우 채널별 조건을 파라미터로 설정하여 최종 이진화 결과를 결정합니다.

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에 두 번째 논리 조건을 설정합니다.