Total Variation Denoising

1 개요

Total Variation Denoising 알고리즘은 이미지에서 주변 픽셀들 간의 변동성을 합하여 총 변동성을 전체적으로 억제하는 알고리즘입니다.

2 알고리즘 상세 설명

minuBV(Ω)uTV(Ω)+λ2Ω(fu)2dx\min_{u \in \mathbf{BV}(\Omega)} \left\|u \right\|_{\textbf{TV}(\Omega)} + \frac{\lambda}{2}\int _{\Omega}(f-u)^{2}dx

시그널 사이에 분포한 노이즈는 시그널의 변동성을 증폭시킵니다. Total Variation Denoising 은 이러한 변동성 들을 합하여 총 변동성이 작아지는 방향으로 노이즈를 억제시킵니다.

입력 이미지 결과 이미지 확대 이미지
Noise Image Total Variation Denoising Result Crop
Fig. Total Variation Denoising 동작 예시

CTotalVariationDenoising totalVariationDenoising;

CFLImage fliSourceImage;
totalVariationDenoising.SetSourceImage(fliSourceImage);

totalVariationDenoising.SetModelType(CTotalVariationDenoising::EModelType_Anisotropic);

totalVariationDenoising.SetLambda(0.1);
totalVariationDenoising.SetIteration(5);

totalVariationDenoising.Execute();
CTotalVariationDenoising totalVariationDenoising = new CTotalVariationDenoising();

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

totalVariationDenoising.SetModelType(CTotalVariationDenoising.EModelType.Anisotropic);

totalVariationDenoising.SetLambda(0.1);
totalVariationDenoising.SetIteration(5);

totalVariationDenoising.Execute();
totalVariationDenoising = CTotalVariationDenoising()

fliSourceImage = CFLImage()
totalVariationDenoising.SetSourceImage(fliSourceImage)

totalVariationDenoising.SetModelType(CTotalVariationDenoising.EModelType.Anisotropic)

totalVariationDenoising.SetLambda(0.1)
totalVariationDenoising.SetIteration(5)

totalVariationDenoising.Execute()

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

멤버함수 파라미터 설 명
SetModelType EModelType eModelType IN 연산 모델 설정자
GetModelType EModelType eModelType OUT 연산 모델 접근자

EModelType::EModelType_Anisotropic - 비등방성 수식을 이용하여 노이즈를 억제합니다.

EModelType::EModelType_Isotropic - 등방성 수식을 이용하여 노이즈를 억제합니다.

멤버함수 파라미터 설 명
SetLambda double f64Lambda IN Lambda 설정자
GetLambda double f64Lambda OUT Lambda 접근자

λ\lambda 는 노이즈 억제 과정 중 총변동성에 어느정도의 가중치를 둘 것인지 결정하는 변수입니다.

f64Lambda - Default Value : 0.1, Recommended Value : 0 ~ 1

멤버함수 파라미터 설 명
SetIteration int64_t i64Iteration IN Iteration 설정자
GetIteration int64_t i64Iteration OUT Iteration 접근자

Iteration 은 노이즈 억제 과정을 몇 번 반복할 것인지 나타내는 변수입니다.

i64Iteration - Default Value : 1, Recommended Value : 1 ~ 5