彩色感知图像散列

时间:2015-02-01 01:23:13

标签: python image-processing hash

我一直在尝试使用快速(ish)图像匹配程序编写,该程序与Python中的旋转或缩放变形图像不匹配。

目标是能够找到与颜色特征中的其他图像类似的图像的小部分,但如果旋转或变形则不同。

我发现了关于感知图像散列的问题,我已经看过用于Python和SSIM的ImageHash模块,但是我看过的大部分内容都没有颜色作为主要因素,即它们的平均值颜色并且仅在一个通道中工作,特别是phash并不关心图像是否旋转。

我希望能够有一种算法可以匹配远处看起来相同的图像(但不一定需要是相同的图像)。

有谁能建议我如何在python中构建和编写这样的算法?或建议一个能够以这种方式比较图像的功能?

1 个答案:

答案 0 :(得分:1)

我找到了几种方法来做到这一点。

我最终使用了自己编写的Mean Squared Error函数:

def mse(reference, query): return (((reference).astype("double")-(query).astype("double"))**2).mean()

直到后来修补我发现了一个似乎做类似事情的功能(比较图像相似性,一点一滴),但速度更快:

def linalg_norm(reference, query): return np.linalg.norm(reference-query)

我对第二个函数的作用没有理论知识,但实际上它并不重要。我并不反对学习它是如何运作的。