【发布时间】:2013-04-27 18:14:55
【问题描述】:
我想比较 2 个直方图,它们有 2 个维度。 为此,我想使用 卡方-Metric。 我的比较器看起来像这个函数:
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 函数中。 但是在哪里?
最好的问候,
【问题讨论】:
标签: opencv image-processing computer-vision histogram comparator