/ / Python 2.7: comparer le pourcentage de similarité entre deux images? - image, python-2.7, comparer, similitude

Python 2.7: comparer le pourcentage de similarité entre deux images? - image, python-2.7, comparer, similitude

En python 2.7, je veux comparer 2 images pour qu'il me renvoie un pourcentage de similarité, comment faire cela? montrez-moi s'il vous plaît, étape par étape. Merci!

Réponses:

0 pour la réponse № 1

Une approche très simple et rapide pour ce faire sans openCV et toute bibliothèque de vision par ordinateur consiste à normaliser les tableaux d'images en

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))

Après avoir défini les deux images normées (ou matrices), vous pouvez simplement additionner la multiplication des images que vous souhaitez comparer:

1) Si vous comparez des images similaires, la somme retournera 1:

In[1]: np.sum(picture1_norm**2)
Out[1]: 1.0

2) Si elles ne sont pas similaires, vous obtiendrez une valeur comprise entre 0 et 1 (un pourcentage si vous multipliez par 100):

In[2]: np.sum(picture2_norm*picture1_norm)
Out[2]: 0.75389941124629822

Veuillez noter que si vous avez des images coloréesvous devez le faire dans les 3 dimensions ou simplement comparer une version en niveaux de gris. Je dois souvent comparer d’énormes quantités d’images et c’est un moyen très rapide de le faire.


0 pour la réponse № 2

Vous pouvez faire quelque chose comme:

#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