2017-05-10 2 views
2

나는 theano 및 opencv를 사용하여 케라에 간단한 네트워크를 실행 중입니다. cvtColor() 메서드를 실행하는 동안 세그먼트 오류 오류가 발생합니다. 코드 :Python OpenCv 세분화 오류

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 

그것은 순간 cv2.cvtColor 충돌()를 호출 : 다음

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) 

는 디버그 정보입니다. 프레임 변수가 필요합니다 (Pdb) frame.size 921600

심지어는 cv2.imshow("color_image", frame)을 사용하여 색이 지정된 프레임과 올바르게 표시됩니다. 그러나 순간을 회색 음영으로 변환하면 충돌이 발생합니다!

현재 OpenCV2.4를 사용하고 있습니다. 어제 같은 코드가 OpenCV3.2에서 제대로 작동했습니다. 몇 가지 이유로 opencv lib를 다운 그레이드해야했습니다.

이 문제를 해결하기위한 제안이 있으십니까?

감사합니다.

+1

. 내 생각에 그 다운 그레이드가 널 죽였어. 나는 OpenCV 3.0과 비슷한 코드를 실행하며 괜찮습니다. 어쩌면이 문서가 실행 불가능한 2.4에 관한 문서에 뭔가가있을 수 있습니다. – AndyG

답변

0

분명히 openCv3.2 관련 문제였습니다. opencv 또는 일부 라이브러리가 일치하지 않는 버그인지 여부를 알 수 없습니다. OpenCV3.0을 설치했고 모든 것이 예상대로 실행 중입니다. OpenCV의 2.4에서

0

* 당신은 사용해야합니다.

이 코드 본질적으로 아무 문제가 없다
cv2.cvtColor(frame, cv2.cv.CV_BGR2GRAY)