/ / Python 2.7: Vergleich Ähnlichkeit zwischen zwei Bildern? - Bild, Python-2.7, vergleichen, Ähnlichkeit

Python 2.7: Ähnlichkeitsprozentsatz zwischen zwei Bildern vergleichen? - Bild, Python-2.7, vergleichen, Ähnlichkeit

In Python 2.7 möchte ich 2 Bilder vergleichen, damit es mir einen ähnlichen Prozentsatz gibt. Wie mache ich das? Bitte zeig mir Schritt für Schritt. Vielen Dank!

Antworten:

0 für die Antwort № 1

Eine sehr einfache und schnelle Methode, um dies ohne openCV und jede Bibliothek für Computer Vision zu tun, ist die Normierung der Bildarrays

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

Nachdem Sie beide normed-Bilder (oder Matrizen) definiert haben, können Sie die Multiplikation der zu vergleichenden Bilder einfach summieren:

1) Wenn Sie ähnliche Bilder vergleichen, wird die Summe 1 zurückgegeben:

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

2) Wenn sie nicht ähnlich sind, erhalten Sie einen Wert zwischen 0 und 1 (ein Prozentsatz, wenn Sie mit 100 multiplizieren):

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

Bitte beachten Sie dies, wenn Sie farbige Bilder habenSie müssen dies in allen 3 Dimensionen tun oder einfach eine Graustufenversion vergleichen. Ich muss oft große Mengen an Bildern vergleichen, und das ist ein sehr schneller Weg.


0 für die Antwort № 2

Sie können etwas tun wie:

#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