wie zu verwenden compareHist opencv-Funktion
img = cv2.imread('mandrill.png')
histg = cv2.calcHist([img],[0],None,[256],[0,256])
if len (sys.argv) < 2:
print >>sys.stderr, "Usage:", sys.argv[0], "<image>..."
sys.exit (1)
for fn in sys.argv[1:]:
im = cv2.imread (fn)
histr = cv2.calcHist([im],[0],None,[256],[0,256])
a = cv2.compareHist(histr,histg,cv2.cv.CV_COMP_CORREL)
print a
Ich bin versucht, den obigen code zu vergleichen, die Korrelation zwischen Histogramme histr
und histg
wenn ich den code bekomme ich die Fehlermeldung
'module' object has no attribute 'cv'
Scheint es, dass CV3 die Namen der verschiedenen Korrelationsfunktionen geändert haben. Was sind die Namen der verschiedenen Korrelationsfunktionen?
- Möglich, Duplikat der stackoverflow.com/questions/30013009/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die opencv-version, die Sie verwenden
cv2.cv.CV_COMP_CORREL
umbenanntcv2.HISTCMP_CORREL
Den Namen der Funktion änderungen sind wie folgt (linke Seite zeigt die Namen für
opencv2
rechten Seite wird der name für die neueste version von opencv(opencv3
)):Als Zdar erwähnt, es sieht aus wie die Konstanten wurden umbenannt in opencv3.0:
Beispielcode für vergleichen Histogramm in OpenCV 3.2
Rückgabewert zeigen, wie nah Ihre test-Bild mit gegenüber einer.
Beispiel:
cv2.HISTCMP_BHATTACHARYYA
Methode gibt null(0,0) für das gleiche Bild.andere Methoden sind
cv2.HISTCMP_CHISQR,cv2.HISTCMP_CHISQR_ALT,cv2.HISTCMP_CORREL cv2.HISTCMP_HELLINGER,cv2.HISTCMP_INTERSECT,cv2.HISTCMP_KL_DIV.
[im2]
zu calcHist, aber was macht der rest der Funktion zu tun: ([0], None,[256],[0,256])