2017-05-10 7 views
2

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.

+1

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

Antwort

0

Es war sicherlich openCV3.2 verwandten Problem. Ich kann nicht sagen, ob es sich um einen Fehler innerhalb der OpenCV- oder einer Library-Diskrepanz handelte. Ich habe OpenCV3.0 installiert und alles läuft wie erwartet.

0

In OpenCV 2.4 * Sie verwenden sollten.

cv2.cvtColor(frame, cv2.cv.CV_BGR2GRAY)