我一直在尝试用 Python 编写一个快速(大概)图像匹配程序,它不匹配旋转或缩放变形的图像。
目标是能够找到图像的一小部分,这些部分在颜色特征上与其他图像相似,但如果旋转或扭曲则不同。
我发现了感知图像散列,我看过 Python 和 SSIM 的 ImageHash 模块,但是我看过的大多数东西都没有将颜色作为主要因素,即它们平均颜色并且只在一个 channel 中工作,特别是 phash 不关心图像是否旋转。
我希望能够有一个算法来匹配在远处看起来相同的图像(但不一定需要是相同的图像)。
谁能建议我如何在 python 中构造和编写这样的算法?或者建议一个能够以这种方式比较图像的函数?
最佳答案
我找到了几种方法来做到这一点。
我最终使用了自己编写的均方误差函数:
def mse(引用,查询):
返回 (((reference).astype("double")-(query).astype("double"))**2).mean()
直到,在后来的修补中,我发现了一个似乎可以做类似事情的函数(一点一点地比较图像相似性),但速度要快得多:
def linalg_norm(引用,查询):
返回 np.linalg.norm(引用查询)
我对第二个函数的作用一无所知,但实际上这无关紧要。我并不反对学习它是如何工作的。
关于python - 颜色感知图像哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28258468/