0

2 つの次元を持つ 2 つのヒストグラムを比較したい。このために、私はカイ二乗 -メトリックを使用したいと考えています。私のコンパレータは、次の関数のようになります。

double Histogram::compareHistogram(Histogram *hist){
    double result=0;
    double a=0;
    double b=0;
    for (int y=0 ; y < bins_1 ; y++) {
         for (int x=0 ; x < bins_2 ; x++) {
             a=getHistogramValue(x,y)-hist->getHistogramValue(x,y);
             b=getHistogramValue(x,y)+hist->getHistogramValue(x,y);
             if(fabs(b)>0.0){
               result+=a*a/b;
             }
         }
    }
    return result;
}

この結果を OpenCv の cv::compareHist()関数の結果と比較しましたが、違います。どうしてか分かりません。

ヒストグラムを比較する前に、ヒストグラムを MINMAX-Norm で正規化します。正規化されたヒストグラムとopenCVの正規化されたヒストグラムを比較しましたが、それらは同じです。問題は私のcompareHist関数にあると思います。しかしここで?

よろしくお願いします、

4

1 に答える 1