Reduce Dimension HarMean 2D to 1D

1 개요

원본 이미지 차원을 축소하는 알고리즘입니다. 축소된 차원의 조화 평균값을 결과로 출력합니다.

2 알고리즘 상세 설명

IDst(x,0)=Heighty=0Height11ISrc(x,y)I_{Dst}(x, 0) = \frac{Height}{\sum_{y=0}^{Height - 1} \frac{1}{I_{Src}(x, y)}}

IDst(0,y)=Widthx=0Width11ISrc(x,y)I_{Dst}(0, y) = \frac{Width}{\sum_{x=0}^{Width - 1} \frac{1}{I_{Src}(x, y)}}

이미지의 x 또는 y 차원을 조화 평균값을 기반으로 축소시킵니다.

Source Image Reduce X Dimension Destination Image Reduce Y Dimension Destination Image
Source Image Reduce X Dimension Destination Image Reduce Y Dimension Destination Image
Fig. Reduce Dimension HarMean 2D to 1D 동작 예시

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

멤버함수 파라미터 설 명
SetReductionDimension CReduceDimensionGeoMean2Dto1D::EReductionDimension eReductionDimension IN 축소 차원을 설정합니다.
SetOverflowMethod EOverflowMethod eOverflowMethod IN 오버플로우 처리 방식을 설정합니다.

4 예제

CFLImage fliSourceImage;
CFLImage fliDestinationImage;

CReduceDimensionHarMean2Dto1D reduceDimensionHarMean2Dto1D;
reduceDimensionHarMean2Dto1D.SetSourceImage(fliSourceImage);
reduceDimensionHarMean2Dto1D.SetDestinationImage(fliDestinationImage);

reduceDimensionHarMean2Dto1D.SetOverflowMethod(EOverflowMethod_Clamping);

// x 차원 축소
reduceDimensionHarMean2Dto1D.SetReduceDimension(CReduceDimensionHarMean2Dto1D::EReduceDimension_X);
reduceDimensionHarMean2Dto1D.Execute();

// y 차원 축소
reduceDimensionHarMean2Dto1D.SetReduceDimension(CReduceDimensionHarMean2Dto1D::EReduceDimension_Y);
reduceDimensionHarMean2Dto1D.Execute();
CReduceDimensionHarMean2Dto1D reduceDimensionHarMean2Dto1D = new CReduceDimensionHarMean2Dto1D();

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

CFLImage fliDestinationImage = new CFLImage();
reduceDimensionHarMean2Dto1D.SetDestinationImage(ref fliDestinationImage);

reduceDimensionHarMean2Dto1D.SetOverflowMethod(EOverflowMethod.Clamping);

// x 차원 축소
reduceDimensionHarMean2Dto1D.SetReduceDimension(CReduceDimensionHarMean2Dto1D.EReduceDimension.X);
reduceDimensionHarMean2Dto1D.Execute();

// y 차원 축소
reduceDimensionHarMean2Dto1D.SetReduceDimension(CReduceDimensionHarMean2Dto1D.EReduceDimension.Y);
reduceDimensionHarMean2Dto1D.Execute();