如何将扫描的图像缩小为一致的散列?

Posted

技术标签:

【中文标题】如何将扫描的图像缩小为一致的散列?【英文标题】:How do I reduce a scanned image to a consistent hash? 【发布时间】:2012-08-13 07:21:23 【问题描述】:

我希望能够扫描图像并将其缩减为一致的哈希值,然后我可以将其与新的扫描结果进行比较,以查看两个图像是否相同。

在这方面的任何帮助将不胜感激!

【问题讨论】:

您是要比较两个图像(= 模糊比较)还是两个文件(= 逐字节比较)? @AlexeiLevenkov 我看不出它怎么可能是模糊比较。我保证扫描两次的一页将导致在字节级别上非常不同的文件。 (或多或少)***.com/questions/11931960/…的重复 @DanielMann,我同意......但也许“新扫描”定义为“有人给我扫描 - 需要检查它是否完全重复(即重试发送)”可以回答在合理的时间在这里。否则 - 有趣的研究项目可能超出 SO 范围。 必须是哈希吗?在我看来,任何模糊的“散列”都必须保留像素值和相对位置,这使得这个“散列”听起来很像图像! 【参考方案1】:

以下方法可能比您实际需要的更强大。

在计算机视觉中,一个活跃的研究领域是识别。

例如,如果我要为我的房子制造一个清洁机器人,它应该能够识别我的狗(以免在它身上喷洒致命的化学物质)。这变得更加困难,因为机器人不一定每次都从相同的角度看狗(而且它可以移动)。即它应该从侧面、前面或后面认出它是我的狗。

为了训练这个机器人,我给它看了几张我的狗在不同光照条件下的照片,它应该能够在未来识别它。

使用不同的方法从图像中提取显着特征,这可以帮助您识别相同的特征,即使照片是在不同的光线或不同的角度拍摄的。

一些特征提取技术包括:

SIFT(尺度不变特征变换)

GIST(GIST 描述符)

HoG(方向梯度直方图)

Shape Context

Texton

Spin-Images

但是,许多现代系统不是手动提取特征,而是使用neural-network 机器学习方法,因此机器人/计算机可以学习识别物体,使用可能与人类学习相同的方式。

我从未做过图像识别,所以我不确定它们的优缺点,但我发现这个主题很吸引人,我希望计算机能够更好地识别事物(视觉、语音、手势等)。

【讨论】:

感谢您的帮助!不过,我真的在寻找一些代码,所以希望其他人能参与进来。

以上是关于如何将扫描的图像缩小为一致的散列?的主要内容,如果未能解决你的问题,请参考以下文章

如何合并散列数组以获取值数组的散列

python集的散列如何工作[重复]

如何打造一个工业级水平的散列表?

如何打造一个工业级水平的散列表?

Webpack 在输出时禁用图像名称的散列

如何从 R 中的散列消息和签名中正确恢复 ECDSA 公钥 ||小号 || V格式?