2012-10-03 2 views
2

opencv를 사용하여 python으로 간단한 얼굴 검색을 코딩하려고합니다. 그러나 불행히도 내 opencv는 내 웹캠을 감지하지 않습니다. 나는 문서가 매우 제한적이기 때문에 어떻게 내부적으로 작동하는지 모르지만 CaptureFromCAM (-1)은 어떤 객체를 반환하지만 QueryFrame은 nones를 반환한다. 예를 들어 치즈에 두 대의 카메라 중 하나를 사용하려고하면 문제없이 비디오가 나옵니다.opencv + python + linux + webcam = 프레임을 캡처 할 수 없습니다.

capture = cv.CaptureFromCAM(-1) 
    faceCascade = cv.Load("haarcascade_frontalface_alt.xml") 
    while (cv.WaitKey(15)==-1): 
     img = cv.QueryFrame(capture) 
     if img != None: 
      image = DetectFace(img, faceCascade) 
      cv.ShowImage("face detection test", image) 

    cv.ReleaseCapture(capture) 

아이디어가 있으십니까?

+0

내 컴퓨터에서 코드를 시도했는데 정상적으로 작동하므로 OpenCV 설정에 문제가있을 수 있습니다. 제쳐두고 더 새롭고 문서화 된'cv2' 인터페이스를 사용하지 않으시겠습니까? – casper

답변

2

좋아, 알아 냈어. 기본적으로 내 openvc는 v4l (Linux 용 비디오) 지원으로 컴파일되었습니다.

이 문제를 해결하려면 먼저 v4l을 사용하는 다른 응용 프로그램과 카메라가 작동하는지 확인해야합니다. 그렇다면 v4l 지원으로 openvc를 재 컴파일하려고 할 수 있습니다. 젠투 (운반을 사용하는)의 경우는 매우 간단합니다 : 다른 패키지 관리자 중 하나를 그림 뭔가 밖으로에 대한

sudo su 
    USE="v4l v4l2" emerge -av opencv 

또는 USE_V4L = ON와 소스에서 컴파일합니다.

관련 문제