Ich habe ein Video in welchem sich eine Person bewegt diese wird durch
Code: Alles auswählen
is_ok, track_window = cv2.meanShift(gmask, track_window, term_crit)
img2 = cv2.rectangle(frame, track_window, 255, 0)
Allerdings scheint genau dort der Fehler zu liegen siehe Bilder(Fenster track_window):
Ich möchte nun den Inhalt aus dem Rechteck als extra Video speichern/schreiben einen festen Wert in der ROI kann ich nicht nutzen da das Rechteck ja von Frame zu Frame unterschiedlich positioniert ist und die Werte variieren. x, y, width, height = track_window liefert mir die richtigen Werte (vermutlich) wenn ich dann allerdings schreibe cv2.imshow('test', frame[x:x+width, y:y+height) bekomme ich nur einen Fehler:
Code: Alles auswählen
File "track_person.py", line 72, in main
cv2.imshow('test', frame[x:x+width, y:y+height])
cv2.error: OpenCV(4.1.0) /io/opencv/modules/highgui/src/window.cpp:352: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'imshow'
Nun weiß ich nicht so recht wie ich dieses Problem lösen soll da ich absolut nicht verstehe weshalb das Rechteck korrekt angezeigt wird und ich es über die Werte
Code: Alles auswählen
x, y, width, height = 220, 400, 400, 650
track_window = (width,x,height,y)
Code: Alles auswählen
img2 = cv2.rectangle(frame, track_window, 255, 0)
print(img2)
Ich hoffe mein Problem ist jetzt etwas verständlicher und sry für den grauenvollen Testcode ^^
MfG Felix