比较具有不同分辨率的图像

时间:2012-04-14 15:07:58

标签: image image-processing hash comparison

是否可以比较两种不同分辨率的图像?

我的意思是一些算法/编程方法。例如,现在我从图像的字节数组计算哈希码,并比较这些哈希码值。这是很好的工作但在不同分辨率的情况下失败,即图像相同通过眼睛但字节内容不同。

例如,请参阅我的图片附件:
enter image description here enter image description here

其中一个 72 ppi 但另一个 96 ppi 。我希望在平等时进行 TRUE 值,但现在我得到 FALSE 。请帮助在这里找到正确的解决方案。

2 个答案:

答案 0 :(得分:5)

在冒险进入更复杂的领域之前,您可能会尝试两种非常简单的感知哈希方法,这些方法基于离散余弦变换和图像的局部与全局均值:

  1. 将图像转换为灰度

    1.1(编辑)使您的图像为零意味着

  2. 将图像压缩为缩略图大小,例如[32x32]
  3. 运行二维离散余弦变换
  4. 保持左上角[8 x 8],最重要的低频成分
  5. 根据组件的符号对块进行二值化
  6. 结果是64位哈希
  7. 这个主题的变体是

    1. 将图像转换为灰度
    2. 可选择重新调整大小为预定义的大小。
    3. 以固定数量的块分区图像
    4. 确定全球平均值
    5. 确定每个区块的本地平均值
    6. 对于散列,每个块写出1或0,如果是本地则挂起 平均值大于或小于全球平均值。
    7. 另外,请查看phash

答案 1 :(得分:3)

对于具有少量不同颜色的合成图像,我将从直方图匹配开始。

基本上将每个图像中每种颜色的像素数加起来除以总像素数。然后你有一个简单的浮点矢量作为指纹。如果您希望具有更多或更少边框的图像计为匹配

,则可以忽略白色

在重新排列切片的情况下,它不会检测到相同的图像,或者文本向下移动了一行,但在这种情况下,我不认为这是关注