Statistics

1 개요

이미지에 대한 통계치를 구하는 알고리즘 입니다.

2 알고리즘 상세 설명

Statistics 알고리즘은 이미지 픽셀 값을 데이터로 하는 통계값을 계산하며 최솟값, 최댓값, 합, 제곱합, 평균, 분산, 표준편차, 변동계수, 공분산, 상관계수, 사분위값을 지원합니다.

입력 이미지 결과
Source Image Result
Fig. Statistics 동작 예시

위의 예시는 3채널 RGB 이미지를 사용하여 Default 설정으로 실행한 예시입니다.

3 예제 코드

CImageStatistics statistics;

CFLImage fliSourceImage;
statistics.SetSourceImage(fliSourceImage);

/* Trimming 설정 시 */
statistics.SetTrimming(0.1, CImageStatistics::ETrimmingLocation_Lower);
statistics.SetTrimming(0.1, CImageStatistics::ETrimmingLocation_Upper);


CMultiVar<double> mvMin;
statistics.GetMin(mvMin);

CMultiVar<double> mvMax;
statistics.GetMax(mvMax);

CMultiVar<double> mvSum;
statistics.GetSum(mvSum);

CMultiVar<double> mvSumOfSquares;
statistics.GetSumOfSquares(mvSumOfSquares);

CMultiVar<double> mvMean;
statistics.GetMean(mvMean);

CMultiVar<double> mvMedian;
statistics.GetMedian(mvMedian);

CMultiVar<double> mvVar;
statistics.GetVariance(mvVar);

CMultiVar<double> mvStandardDeviation;
statistics.GetStandardDeviation(mvStandardDeviation);

CMultiVar<double> mvCoeff;
statistics.GetCoefficientOfVariance(mvCoeff);

CMultiVar<double> mvLower;
CMultiVar<double> mvUpper;
statistics.GetLowerQuartile(mvLower);
statistics.GetUpperQuartile(mvUpper);

double Covariance;
statistics.SetCorrelatedChannel(0, 1);
statistics.GetCovariance(Covariance);

statistics.SetCorrelatedChannel(0, 2);
statistics.GetCovariance(Covariance);

statistics.SetCorrelatedChannel(1, 2);
statistics.GetCovariance(Covariance);

double CorrelationCoefficient;
statistics.SetCorrelatedChannel(0, 1);
statistics.GetCorrelationCoefficient(CorrelationCoefficient);

statistics.SetCorrelatedChannel(0, 2);
statistics.GetCorrelationCoefficient(CorrelationCoefficient);

statistics.SetCorrelatedChannel(1, 2);
statistics.GetCorrelationCoefficient(CorrelationCoefficient);

CImageStatistics statistics = new CImageStatistics();

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

/* Trimming 설정 시 */
statistics.SetTrimming(0.1, CImageStatistics.ETrimmingLocation.Lower);
statistics.SetTrimming(0.1, CImageStatistics.ETrimmingLocation.Upper);


CMultiVar<double> mvMin = new CMultiVar<double>();
statistics.GetMin(out mvMin);

CMultiVar<double> mvMax = new CMultiVar<double>();
statistics.GetMax(out mvMax);

CMultiVar<double> mvSum = new CMultiVar<double>();
statistics.GetSum(out mvSum);

CMultiVar<double> mvSumOfSquares = new CMultiVar<double>();
statistics.GetSumOfSquares(out mvSumOfSquares);

CMultiVar<double> mvMean = new CMultiVar<double>();
statistics.GetMean(out mvMean);

CMultiVar<double> mvMedian = new CMultiVar<double>();
statistics.GetMedian(out mvMedian);

CMultiVar<double> mvVar = new CMultiVar<double>();
statistics.GetVariance(out mvVar);

CMultiVar<double> mvStandardDeviation = new CMultiVar<double>();
statistics.GetStandardDeviation(out mvStandardDeviation);

CMultiVar<double> mvCoeff = new CMultiVar<double>();
statistics.GetCoefficientOfVariance(out mvCoeff);

CMultiVar<double> mvLower = new CMultiVar<double>();
CMultiVar<double> mvUpper = new CMultiVar<double>();
statistics.GetLowerQuartile(out mvLower);
statistics.GetUpperQuartile(out mvUpper);

double Covariance;
statistics.SetCorrelatedChannel(0, 1);
statistics.GetCovariance(out Covariance);

statistics.SetCorrelatedChannel(0, 2);
statistics.GetCovariance(out Covariance);

statistics.SetCorrelatedChannel(1, 2);
statistics.GetCovariance(out Covariance);

double CorrelationCoefficient;
statistics.SetCorrelatedChannel(0, 1);
statistics.GetCorrelationCoefficient(out CorrelationCoefficient);

statistics.SetCorrelatedChannel(0, 2);
statistics.GetCorrelationCoefficient(out CorrelationCoefficient);

statistics.SetCorrelatedChannel(1, 2);
statistics.GetCorrelationCoefficient(out CorrelationCoefficient);