2017-06-09 1 views

Antwort

0

Ein sehr einfache und schneller Ansatz, dies zu tun, ohne OpenCV und jede Bibliothek für Computer Vision ist es, den Bild-Arrays von

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

Nach der Definition sowohl normierter Bilder (oder Matrizen) bis zur Norm kann man einfach über Summe des Vervielfachung der Bilder, die Sie vergleichen wollen:

1) Wenn Sie die Summe ähnliche Bilder vergleichen zurückkehren 1:

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

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

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

Bitte beachten Sie, dass Bilder gefärbt haben Sie dies in allen drei Dimensionen zu tun haben oder nur vergleichen Graustufenversion. Ich muss oft große Mengen an Bildern vergleichen, und das ist ein sehr schneller Weg.

+0

Wie kann ich Bild definieren und wie ich habe 3 Dimensionen farbiges Bild zu vergleichen? – user7442628

+0

Graustufenbilder werden in den meisten Fällen durch m x n Arrays repräsentiert, die Werte zwischen 0 und 255 oder 0 und 1 enthalten. Meine Bild-Arrays sind also nur Beispiele für Bilddaten. Ein farbiges Bild enthält typischerweise ein Array der Größe 3 bei jedem Element in dem m × n-Array. Die 3 Einträge repräsentieren die Farben r, g, b. – Franz

+0

Wenn es Ihnen nichts ausmacht, sagen Sie mir bitte die Schritt für Schritt Anleitung zum Farbbild. Ich werde Ihnen dankbar sein – user7442628

0

Sie können so etwas wie tun:

#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