2017-04-07 3 views
0
import numpy as np 
import cv2 
import thread, winsound 

face_cascade = cv2.CascadeClassifier('C:\Users\Saddaqat\Desktop\Softwares\opencv\build\share\OpenCV\haarcascades\haarcascade_frontalface_default.xml') 
eye_cascade = cv2.CascadeClassifier('C:\Users\Saddaqat\Desktop\Softwares\opencv\build\share\OpenCV\haarcascades\haarcascade_eye.xml') 

def beep(): 
    for i in xrange(4): 
    winsound.Beep(1500, 250) 

cam = cv2.VideoCapture(0) 
count = 0 
iters = 0 
while(True): 
     ret, cur = cam.read() 
     gray = cv2.cvtColor(cur, cv2.COLOR_BGR2GRAY) 
     faces = face 

    _cascade.detectMultiScale(gray,scaleFactor = 1.1, minNeighbors=1, minSize=(10,10)) 
      for (x,y,w,h) in faces: 
      #cv2.rectangle(cur,(x,y),(x+w,y+h),(255,0,0),2) 
      roi_gray = gray[y:y+h,x:x+w] 
      roi_color = cur[y:y+h,x:x+w] 
      eyes = eye_cascade.detectMultiScale(roi_gray) 
     if len(eyes) == 0: 
      print "Eyes closed" 
     else: 
      print "Eyes open" 
     count += len(eyes) 
     iters += 1 
     if iters == 2: 
      iters = 0 
      if count == 0: 
      print "Drowsiness Detected!!!" 
      thread.start_new_thread(beep,()) 
      count = 0 
     for (ex,ey,ew,eh) in eyes: 
      cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh), (0,255,0),2) 
     cv2.imshow('frame', cur) 
     if cv2.waitKey(1) & 0xFF == ord('q'): 
     cv2.destroyAllWindows() 
     break 
// 

이 오류가 발생했습니다.이 오류를 해결하십시오. 감사와 사랑을 미리) 추적 (가장 최근의 마지막 통화) : 파일 "C : \ Users \ Saddaqat \ Desktop \ fatigue detection code", 줄 17, 에 회색 = cv2.cvtColor (cur, cv2.COLOR_BGR2GRAY) 오류 : ........ \ opencv \ modules \ imgproc \ src \ color.cpp : 3739 : 오류 : (-215) scn == 3 || scn == 4 in function cv :: cvtColorPython-Opencv 오류 : (-215) scn == 3 || scn == 4 in function cv :: cvtColor

답변

1

음, VideoCapture가 작동하지 않는 것처럼 보입니다.

가 그런 경우에는 SO에 여기에 몇 가지 답변이 있었다
ret, cur = cam.read() 
if not ret: 
    print "VideoCapture read no frame." 
    break 

이 당신을 도울 수있는 예를 들어, : 뭔가를 읽고 수 있다면 당신은 이미지를 읽고 확인해야합니다 기본적으로 OpenCV 2.4 VideoCapture not working on Windows , 그들은 말 ffmpeg에 문제가있을 수 있습니다. 어쩌면 Windows 경로에 추가하거나 OpenCV 버전으로 이름을 바꿔야 할 수도 있습니다.

+0

감사합니다. Facug91. – Saddaqat

관련 문제