cv2.Linie und cv2.Kreis return None

Ich versuche zur Implementierung der Lucas-Kanade-Algorithmus für den optischen Fluss auf Python mit cv2.calcOpticalFlowPyrLK. Jedoch, wenn ich versuche, eine Linie zu ziehen, um die Verbindung der aktuellen und der vorherigen Punkte, wie auch die Stelle selbst, die Funktionen geben Keine.

Hier ist der code

#draw the overlaying tracking img
for i,(new,old) in enumerate(zip(good_new,good_old)):
    a,b = new.ravel() #tmp new value
    c,d = old.ravel() #tmp old value

    #draws a line connecting the old point with the new point
    mask = cv2.line(mask,(a,b),(c,d),color[i].tolist(),2) #returns None... why??
    #draws the new point
    frame = cv2.circle(frame,(a,b),5,color[i].tolist(),-1) #returns None... why??

img = cv2.add(frame,mask)

#show on window
cv2.imshow("frame",img)

a,b,c,d sind numpy.float32

Rahmen meiner gelesenen Wert aus der webcam

Maske ist init in ein array von Nullen

Farbe ist ein random array

Dies ist die Fehlermeldung die ich bekomme, wenn ich versuche, imshow

error: /Users/vagrant/pisi-64bit/tmp/opencv-2.4.5-2/work/opencv-2.4.5/modules/core/src/array.cpp:2482: error: (-206) Unrecognized or unsupported array type in function cvGetMat

Ich bin wirklich dankbar für die Hilfe!

InformationsquelleAutor gabrielh | 2013-10-16
Schreibe einen Kommentar