Statistics

1 개요

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

2 알고리즘 상세 설명

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

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

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

3 예제 코드

CImageStatistics imageStatistics;

CFLImage fliSourceImage;
imageStatistics.SetSourceImage(fliSourceImage);

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CImageStatistics imageStatistics = new CImageStatistics();

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

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


CMultiVar<double> mvMin = new CMultiVar<double>();
imageStatistics.GetMin(ref mvMin);

CMultiVar<double> mvMax = new CMultiVar<double>();
imageStatistics.GetMax(ref mvMax);

CMultiVar<double> mvSum = new CMultiVar<double>();
imageStatistics.GetSum(ref mvSum);

CMultiVar<double> mvSumOfSquares = new CMultiVar<double>();
imageStatistics.GetSumOfSquares(ref mvSumOfSquares);

CMultiVar<double> mvMean = new CMultiVar<double>();
imageStatistics.GetMean(ref mvMean);

CMultiVar<double> mvMedian = new CMultiVar<double>();
imageStatistics.GetMedian(ref mvMedian);

CMultiVar<double> mvVar = new CMultiVar<double>();
imageStatistics.GetVariance(ref mvVar);

CMultiVar<double> mvStandardDeviation = new CMultiVar<double>();
imageStatistics.GetStandardDeviation(ref mvStandardDeviation);

CMultiVar<double> mvCoeff = new CMultiVar<double>();
imageStatistics.GetCoefficientOfVariance(ref mvCoeff);

CMultiVar<double> mvLower = new CMultiVar<double>();
CMultiVar<double> mvUpper = new CMultiVar<double>();
imageStatistics.GetLowerQuartile(ref mvLower);
imageStatistics.GetUpperQuartile(ref mvUpper);

double Covariance;
imageStatistics.SetCorrelatedChannel(0, 1);
imageStatistics.GetCovariance(ref Covariance);

imageStatistics.SetCorrelatedChannel(0, 2);
imageStatistics.GetCovariance(ref Covariance);

imageStatistics.SetCorrelatedChannel(1, 2);
imageStatistics.GetCovariance(ref Covariance);

double CorrelationCoefficient;
imageStatistics.SetCorrelatedChannel(0, 1);
imageStatistics.GetCorrelationCoefficient(ref CorrelationCoefficient);

imageStatistics.SetCorrelatedChannel(0, 2);
imageStatistics.GetCorrelationCoefficient(ref CorrelationCoefficient);

imageStatistics.SetCorrelatedChannel(1, 2);
imageStatistics.GetCorrelationCoefficient(ref CorrelationCoefficient);

imageStatistics = CImageStatistics()

fliSourceImage = CFLImage()
imageStatistics.SetSourceImage(fliSourceImage)

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


mvMin = CMultiVar[Double]()
imageStatistics.GetMin(mvMin)

mvMax = CMultiVar[Double]()
imageStatistics.GetMax(mvMax)

mvSum = CMultiVar[Double]()
imageStatistics.GetSum(mvSum)

mvSumOfSquares = CMultiVar[Double]()
imageStatistics.GetSumOfSquares(mvSumOfSquares)

mvMean = CMultiVar[Double]()
imageStatistics.GetMean(mvMean)

mvMedian = CMultiVar[Double]()
imageStatistics.GetMedian(mvMedian)

mvVar = CMultiVar[Double]()
imageStatistics.GetVariance(mvVar)

mvStandardDeviation = CMultiVar[Double]()
imageStatistics.GetStandardDeviation(mvStandardDeviation)

mvCoeff = CMultiVar[Double]()
imageStatistics.GetCoefficientOfVariance(mvCoeff)

mvLower = CMultiVar[Double]()
mvUpper = CMultiVar[Double]()
imageStatistics.GetLowerQuartile(mvLower)
imageStatistics.GetUpperQuartile(mvUpper)

Covariance = 0
imageStatistics.SetCorrelatedChannel(0, 1)
_, Covariance = imageStatistics.GetCovariance(Covariance)

imageStatistics.SetCorrelatedChannel(0, 2)
_, Covariance = imageStatistics.GetCovariance(Covariance)

imageStatistics.SetCorrelatedChannel(1, 2)
_, Covariance = imageStatistics.GetCovariance(Covariance)

CorrelationCoefficient = 0
imageStatistics.SetCorrelatedChannel(0, 1)
_, CorrelationCoefficient = imageStatistics.GetCorrelationCoefficient(CorrelationCoefficient)

imageStatistics.SetCorrelatedChannel(0, 2)
_, CorrelationCoefficient = imageStatistics.GetCorrelationCoefficient(CorrelationCoefficient)

imageStatistics.SetCorrelatedChannel(1, 2)
_, CorrelationCoefficient = imageStatistics.GetCorrelationCoefficient(CorrelationCoefficient)