在python 2.7中,我想比较2图像,以便它返回相似百分比给我,怎么做?请一步一步地告诉我。谢谢!
答案 0 :(得分:0)
在没有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个维度中执行此操作,或者只是比较灰度版本。我经常需要比较大量的图片,这是一个非常快速的方法。
答案 1 :(得分:0)
您可以执行以下操作:
#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