Fuzzy Entropy

1 개요

이미지에 대한 Fuzzy Entropy 를 구하는 알고리즘 입니다.

2 알고리즘 상세 설명

Fuzzy Entropy 알고리즘은 이미지를 Fuzzy Set 으로 간주합니다. 대상 이미지가 흰색 또는 검은색 이미지에 얼마나 잘 근접하는지 측정하여, 잘 근접할수록 0, 아닐수록 1 에 가까운 값이 산출 됩니다.

H(x)=1MNln2m,nx{uxln(ux)(1ux)ln(1ux)}\large \textbf{H(x)} = \frac{1}{MN \cdot \textbf{ln2}}\sum_{m,n \in \textbf{x}} \left\{ -u_{\textbf{x}} \cdot \textbf{ln}(u_{\textbf{x}}) - (1-u_{\textbf{x}}) \cdot \textbf{ln}(1-u_{\textbf{x}}) \right\}

ux={0   xa(xa)2(ba)(ca)  a<xb(xc)2(cb)(ca)  b<xc1  cx\large u_{\textbf{x}} =\begin{cases} 0 & \text{, \; } x \leq a \\ \frac{(x-a)^{2}}{(b-a)(c-a)} & \text{, \;} a < x \leq b \\ \frac{(x-c)^{2}}{(c-b)(c-a)} & \text{, \;} b < x \leq c \\ 1 & \text{, \;} c \leq x \end{cases}

결과 : 0.600424 결과 : 0.528426
Result 1 Result 2
Fig. Fuzzy Entropy 동작 예시

위의 예시는 예제 이미지와 노이즈를 추가한 이미지를 사용하여 Default 설정으로 실행한 예시입니다.

3 예제 코드

CFuzzyEntropy fuzzyEntropy;

CFLImage fliSourceImage;
fuzzyEntropy.SetSourceImage(fliSourceImage);

fuzzyEntropy.SetParameterA(0);
fuzzyEntropy.SetParameterC(255);

fuzzyEntropy.Execute();

CMultiVar<double> mvFuzzyEntropy;
fuzzyEntropy.GetResultFuzzyEntropy(mvFuzzyEntropy);

CFuzzyEntropy fuzzyEntropy = new CFuzzyEntropy();

CFLImage fliSourceImage = new CFLImage();
fuzzyEntropy.SetSourceImage(ref fliSourceImage);

fuzzyEntropy.SetParameterA(0);
fuzzyEntropy.SetParameterC(255);

fuzzyEntropy.Execute();

CMultiVar<double> mvFuzzyEntropy = new CMultiVar<double>();
fuzzyEntropy.GetResultFuzzyEntropy(out mvFuzzyEntropy);

4 파라미터 설정 및 사용 방법

멤버함수 파라미터 설 명
SetParameterA double f64ParameterA IN Parameter A 설정자
GetParameterA double f64ParameterA OUT Parameter A 접근자

Membership Function 의 Parameter A 를 설정합니다.

멤버함수 파라미터 설 명
SetParameterC double f64ParameterC IN Parameter C 설정자
GetParameterC double f64ParameterC OUT Parameter C 접근자

Membership Function 의 Parameter C 를 설정합니다.