python2.7直方图比较 - 白色背景异常

时间:2016-08-24 07:22:46

标签: python python-2.7 opencv image-processing histogram

我的计划的目的是拍摄2张图片并确定它们的相似程度。 我不是在这里谈论相同但相似性。例如,如果我拍摄同一网站的2个不同页面的2个屏幕截图,他们的主题颜色可能会非常相似,因此我希望程序声明它们是相似的。

我的问题开始时,两个图像都有一个白色背景,几乎取代直方图计算(超过30%的图像是白色,其余图像是分布式的。)

在这种情况下,cv2.compareHist(使用相关方法,适用于其他情况)会产生非常糟糕的结果,即即使它们看起来非常不同,等级也非常高。

我想过在比较之前从柱状图中取出白色(255),但这需要我用256个箱子来计算直方图,这在我想要检查相似性时是不好的(我认为使用32或64个箱子会是最好的)

遗憾的是,由于法律原因,我无法添加图片

如果有人可以提供帮助,或解决问题的代码,我将非常感激

非常感谢

1 个答案:

答案 0 :(得分:0)

你可以删除白色,重新组合histogra,然后比较:

  • 用256个箱子计算一个histrogram。
  • 取下白色垃圾桶(或将其置零)。
  • 通过添加4个连续箱的值,将箱重新组合成64个箱。
  • 执行compareHist()。

这适用于任何"主要颜色"。概括起来,您可以执行以下操作:

比较完整的组织图。如果他们不同,那么完成。 如果它们相似,请寻找主要颜色(使用256个bin的直方图),并执行上述步骤,从比较中删除主要颜色。