OpenCV直方图比较方法

OpenCV直方图比较方法,opencv,image-processing,comparison,histogram,Opencv,Image Processing,Comparison,Histogram,综上所述,有4(5)种不同的比较方法: CV\u COMP\u CORREL相关性 CV_COMP_CHISQR卡方检验 CV\u COMP\u相交相交 CV_COMP_BHATTACHARYYABHATTACHARYYA距离 CV_COMP_HELLINGERCV_COMP_BHATTACHARYYA的同义词 它们都提供不同的输出,以不同的方式读取,如中所示。但我找不到任何东西来说明每种方法的执行效率。当然每种方法都有利弊,否则为什么有多种方法 就连美国政府也很少对这些差异发表意见: 对cv:

综上所述,有4(5)种不同的比较方法:

  • CV\u COMP\u CORREL相关性
  • CV_COMP_CHISQR卡方检验
  • CV\u COMP\u相交相交
  • CV_COMP_BHATTACHARYYABHATTACHARYYA距离
  • CV_COMP_HELLINGERCV_COMP_BHATTACHARYYA的同义词
  • 它们都提供不同的输出,以不同的方式读取,如中所示。但我找不到任何东西来说明每种方法的执行效率。当然每种方法都有利弊,否则为什么有多种方法

    就连美国政府也很少对这些差异发表意见:

    对cv::compareHist的调用很简单。您只需输入两个 直方图和函数返回测量的距离。这个 要使用的特定测量方法是使用标志指定的。 在ImageComparator类中,使用交集方法(与 标记CV_COMP_INTERSECT)。这个方法只是比较每个箱子, 每个直方图中的两个值,并保持最小值。这个 相似性度量就是这些最小值的总和。 因此,两个图像的直方图没有共同的颜色 将得到相交值0,而两个相同的直方图 将获得等于像素总数的值

    其他可用的方法是卡方检验(标志CV_COMP_CHISQR) 它将存储箱之间的标准化平方差相加 相关方法(标记CV\u COMP\u CORREL),基于 信号处理中的归一化互相关算子 测量两个信号之间的相似性,以及Bhattacharyya 测量值(标记CV_COMP_BHATTACHARYYA)用于统计估计 两个概率分布之间的相似性


    这两种方法之间肯定有区别,所以我的问题是它们是什么?在什么情况下它们工作得最好?

    CV\u COMP\u INTERSECT计算起来很快,因为您只需要每个箱子的最小值。但它不会告诉你很多关于差异的分布情况。其他方法试图在不同的像素分布假设下,获得更好、更连续的匹配分数

    您可以在以下位置找到不同方法中使用的公式:

    有关匹配算法的更多详细信息,请访问:


    我想试试维基百科。这就像在问,是沿着街道测量距离更好,还是在乌鸦飞的时候测量距离更好。。。您可能需要了解要测量的内容。但也许真的有一本烹饪书“什么时候使用哪种距离度量”,所以祝你好运。我只是想指出可用方法的不同之处。你的第一个链接与我的第一个链接相同,但第二个链接很有趣。话虽如此,它仍然只说明了我发现的所有其他链接:不同方法的评分是不同的。从数学上讲,归一化直方图是概率密度函数(PDF)。当我们匹配两个直方图时,我们基本上看到两个分布如何相互匹配。回答问题的最好方法是阅读有关统计模式识别的教科书(Duda和Hart相当不错),或类似的出版物。我学会了这些东西,但大部分都忘了-(.