直方图比较过程
对于代码的实现和公式网上百度都有,这里就不再造轮子了,本文重点是思想和应用的过程.主要式在Opencv中实现的过程.
1 概述
通过直方图可以比较两张图片的相识度,可以大概的判断两张图片是否相同.
对输入的两张图像计算得到直方图H1和H2,归一化到相同的尺度空间,然后通过计算H1和H2的之间的距离得到两个直返图的相似程度进而比较图像本身的相似程度.OpenCV提供的比较方法有四种:
- Correlation 相关比较
- Chi-Square 卡方比较
- Intersection 十字交叉性
- Bhattacvharyya distance 巴氏距离
对于公式网上百度.
2 过程
- 首选把图像从RGB色彩空间转换到HSV色彩空间cvColor(为什么?因为直方图都是基于亮度和灰度级别,二HSV色彩空间对色彩亮度表示比较好的方式,转换成HSV空间以后然后只取HS通道)
- 计算图像的直方图,然后归一化到[0~1]之间calcHist和normalize;
- 使用上述四种比较方法之一进行比较compareHist.
3 应用
对于直方图比较可以应在图片相识度的对比,对于一些简单的识别是可以实现的,比如颜色识别,可以通过比较两张图片的相似度来判断颜色.