直方图匹配策略
直方图是用来比较两幅图像相似度的重要途径,常用的距离标准包括:相关、卡方、直方图相交以及Bhattacharyya距离。
光线变化能使得图像颜色值的飘逸,尽管颜色直方图形状没有改变(整体位移),这样的变化使得以上匹配策略失效【我的理解为,此时匹配仍可以得到正确结论,即具有越相似直方图统计特性,会在四种评判中得到更好的结果,但是可能已经丧失其原本的意义了,数值大小不能反应图像之间的差异,即不再具有判断图像相似度的能力】。
举个例子图像A,B,C,我们想从B和C中找到与A更相似的图片(视觉上),当这两者根据某一标准的结果都很差时,即使相对较好的结果我们也不能说它和图像A更相似(虽然在统计上是这样的)。所以需要提出一种比较靠谱的度量方法。
陆地移动距离
更靠谱的距离度量方法就是陆地移动距离(EMD),下面是The Earth Mover’s Distance as a Metric for Image Retrieval(EMD)这篇文献摘要的翻译,看了可能对EMD有更好的认识:
我们研究了一种基于图像内容检索方法的直方图分布特性,陆地移动距离(EMD)。 EMD的意义是将一种直方图分布转化为另一种分布所要付出的最小成本。对于图像检索来说,我们将EMD和矢量量化结合一起,该方法相比以往方法在视觉相似性表现出了更好的方法。EMD相比其他直方图匹配算法,具有更佳的鲁棒性。当用来比较相同质量分布时,EMD度量更加真实。在本文中,我们专注于应用于颜色和纹理,比较EMD了的检索性能与其他距离的检索性能。
因此,EMD距离模型应该还是挺有用途的。
PS:
OPENCV中cvCalcEMD2()函数能计算的最大直方图签名的行数为15440。
(1)对于1维直方图,区间数目不能超过15440;
(2)对于2维直方图,2个区间数目的乘积不能超过15440,区间相同的话每个区间不能超过124;
(3)对于3维直方图,3个区间数目的乘积不能超过15440,区间相同的话每个区间不能超过24.9;
(4)实际使用的时候,因为同一个程序中的其他部分还要占用内存,所以会比计算的值更少。
具体参见:http://www.cnblogs.com/xrwang/archive/2010/02/02/cvCalcEMD2Exception.html
实验:card1、card2分别是光照较强时的图像,card2相对card1有旋转,card3是光照较弱时的图像(由于我是手机拍的,可能不太清楚)
计算了相互间直方图相交以及EMD度量。