在python 2.7中,我想比较2张图片这样它给我的相似度百分比,怎么办? 请一步一步告诉我。谢谢!
在没有 openCV 和任何计算机视觉库的情况下做到这一点的一个非常简单和快速的方法是通过以下方式规范图片数组
import numpy as np
picture1 = np.random.rand(100,100)
picture2 = np.random.rand(100,100)
picture1_norm = picture1/np.sqrt(np.sum(picture1**2))
picture2_norm = picture2/np.sqrt(np.sum(picture2**2))
在定义了两个赋范图片(或矩阵)之后,你可以对你想要比较的图片的乘法求和:
1)如果您比较相似的图片,总和将返回1:
In[1]: np.sum(picture1_norm**2)
Out[1]: 1.0
2)如果它们不相似,您将获得一个介于0和1之间的值(如果乘以100,则为百分比):
In[2]: np.sum(picture2_norm*picture1_norm)
Out[2]: 0.75389941124629822
请注意,如果您有彩色图片,则必须在所有 3 个维度上执行此操作,或者只是比较灰度版本。我经常需要比较大量的图片,这是一种非常快速的方法。
你可以执行以下操作:
#Dimension tuppel
dim = (100,100,3) #Image dim in y,x,channels
pic1 = np.random.rand(dim)
pic2 = np.random.rand(dim)
#Either use operations that can be performed on np arrays
#or use flatten to make your (100,100,3) Immage a 100*100*3 vector
#Do your computation with 3 channels
#reshape the image if flatten np.reshape(output,(dim))
DONE