0
2 개의 히스토그램을 비교하고 싶습니다. 이것을 위해 사용하고 싶습니다 Chi-Square -Metric. 내 비교기는이 기능과 같습니다Chi-Square와 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의의 이력서 :: compareHist()
함수의 결과와 그 결과를 비교했는데이 다르다. 나는 이유를 모른다.
히스토그램을 비교하기 전에 나는 히스토그램을 MINMAX-Norm로 표준화했습니다. 표준화 된 히스토그램을 openCV의 표준 히스토그램과 비교했는데 그 값은 같습니다. 내 생각에 문제는 내 compareHist 함수에 있습니다. 하지만 어디서?
안부,
오, 그래 ... 네 말이 맞아. 나는이 코드 (https://code.ros.org/trac/opencv/browser/trunk/opencv/modules/imgproc/src/histogram.cpp?rev=4885)의 오래된 개정판을 보여 줬어. 고마워. –