Ich betreibe ein einfaches Netzwerk auf Keras mit Theano und Opencv. Beim Ausführen der cvtColor() -Methode erhalte ich einen Segmentierungsfehler. Code-Schnipsel:Python OpenCv Segmentierung Fehler
if __name__ == '__main__':
cap = cv2.VideoCapture(0)
if not cap:
print "!!! Failed VideoCapture: unable to open device 0"
sys.exit(1)
cascade_path = "~/opencv-2.4.13.2/data/haarcascades/haarcascade_frontalface_default.xml"
model = Model()
model.load()
while True:
pdb.set_trace()
_, frame = cap.read()
frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cascade = cv2.CascadeClassifier(cascade_path)
Unten ist die Debug-Informationen:
Model Loaded.
>
-> _, frame = cap.read()
(Pdb) n
-> frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
(Pdb) list
16 while True:
17 pdb.set_trace()
18 _, frame = cap.read()
19
20
21 -> frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
22
23
24 cascade = cv2.CascadeClassifier(cascade_path)
25
26
(Pdb) n
Segmentation fault
Er stürzt den Moment cv2.cvtColor() aufgerufen wird. Frame-Variable benötigt (Pdb) frame.size 921600
Ich habe sogar cv2.imshow("color_image", frame)
verwendet, um den farbigen Rahmen angezeigt und es korrekt angezeigt. Aber sobald ich es in Graustufen umwandele, stürzt es ab!
Ich benutze OpenCV2.4 im Moment. Gestern funktionierte der gleiche Code unter OpenCV3.2 einwandfrei. Aus irgendwelchen Gründen musste ich die opencv lib herunterstufen.
Vorschläge zur Lösung dieses Problems?
Danke.
Es ist nichts falsch mit diesem Code. Meine Vermutung ist, dass das Downgrade dich getötet hat. Ich laufe einen ähnlichen Code mit OpenCV 3.0 und es ist in Ordnung. Vielleicht gibt es etwas in den Dokumenten zu 2.4, wo dies nicht möglich war. – AndyG