image processing - OpenCV Histogram Comparison Methods -
looking @ histogram documentation, there 4(5) different comparison methods:
- cv_comp_correl correlation
- cv_comp_chisqr chi-square
- cv_comp_intersect intersection
- cv_comp_bhattacharyya bhattacharyya distance
- cv_comp_hellinger synonym for cv_comp_bhattacharyya
they give different outputs read differently shown in compare histogram documentation. can't find states how each method performs compared against each other. surely there pros , cons each method, otherwise why have multiple methods?
even opencv 2 computer vision application programming cookbook has little on differnces:
the call cv::comparehist straightforward. input 2 histograms , function returns measured distance. specific measurement method want use specified using flag. in imagecomparator class, intersection method used (with flag cv_comp_intersect). method compares, each bin, 2 values in each histogram, , keeps minimum one. similarity measure sum of these minimum values. consequently, 2 images having histograms no colors in common intersection value of 0, while 2 identical histograms value equal total number of pixels.
the other methods available chi-square (flag cv_comp_chisqr) sums normalized square difference between bins, correlation method (flag cv_comp_correl) based on normalized cross-correlation operator used in signal processing measure similarity between 2 signals, , bhattacharyya measure (flag cv_comp_bhattacharyya) used in statistics estimate similarity between 2 probabilistic distributions.
there must differences between methods, question they? , under circumstances work best?
cv_comp_intersect fast compute since need minimum value each bin. not tell distribution of differences. other methods try achieve better , more continuous score match, under different assumptions pixel distribution.
you can find formulae used in different methods, at
some references more details on matching algorithms can found at:
Comments
Post a Comment