OpenCv直方图对比图片的相似性

来源:互联网 发布:免费的api数据接口 编辑:程序博客网 时间:2024/05/10 20:50
OpenCv直方图对比图片的相似性  




原理


  • 要比较两个直方图( H_{1} and H_{2} ), 首先必须要选择一个衡量直方图相似度的 对比标准 (d(H_{1}, H_{2})) 。

  • OpenCV 函数 compareHist 执行了具体的直方图对比的任务。该函数提供了4种对比标准来计算相似度:

    1. Correlation ( CV_COMP_CORREL )

      d(H_1,H_2) =  \frac{\sum_I (H_1(I) - \bar{H_1}) (H_2(I) - \bar{H_2})}{\sqrt{\sum_I(H_1(I) - \bar{H_1})^2 \sum_I(H_2(I) - \bar{H_2})^2}}

      其中

      \bar{H_k} =  \frac{1}{N} \sum _J H_k(J)

      N 是直方图中bin的数目。

    2. Chi-Square ( CV_COMP_CHISQR )

      d(H_1,H_2) =  \sum _I  \frac{\left(H_1(I)-H_2(I)\right)^2}{H_1(I)+H_2(I)}

    3. Intersection ( CV_COMP_INTERSECT )

      d(H_1,H_2) =  \sum _I  \min (H_1(I), H_2(I))

    4. Bhattacharyya 距离( CV_COMP_BHATTACHARYYA )

      d(H_1,H_2) =  \sqrt{1 - \frac{1}{\sqrt{\bar{H_1} \bar{H_2} N^2}} \sum_I \sqrt{H_1(I) \cdot H_2(I)}}

0 0
原创粉丝点击