2014-12-13 9 views
2

그래서 나는 다음과 같은 코드를 사용하고는 :얼굴 인식 라즈베리 파이

if box.is_button_up() or is_letter_input('c'): 
    print 'Capturing image...' 
    image = camera.read() 
    # Convert image to grayscale. 
    image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY) 
    # Get coordinates of single face in captured image. 
    result = face.detect_single(image) 

내 문제는 내가 내 USB 웹캠 대신 라즈베리 파이 카메라 모듈을 사용하는 것을 시도하고 있다는 점이다. 해당 코드를 대체하는 데 도움이 필요합니까?

구체적으로 image = camera.read()

나는 그런 pygame.camera 및 기타 변화로 여러 변화를 시도했습니다. 내가 가진 모든 것은 수 많은 오류와 다른 오류들이었습니다.

+0

.read 함수는 인수를 1 개만 취할 수 있고 2가 주어진다 고합니다. –

+0

내 잘못이야; 나는'camera = cv2.VideoCapture (1)'을 의미했다. –

+0

image = camera.read 바로 위에 코드를 추가하고 새로운 오류가 표시되었습니다. http://i.imgur.com/tkHuG99.png –

답변

0

Linux에서 웹캠 소스를 바꾸는 CV2 사용 경험이 항상 쉬운 것은 아닙니다. OpenCV가 작동하는 방식은 시스템 (일반적으로) video0으로 알려진 기본 비디오 소스를 자동으로 그립니다. USB 웹캠을 분리하고 터미널에 들어가서 ls /dev/video*을 입력하십시오. 그것이 말하는 번호를 기억하십시오. 이제 USB 웹캠을 연결하고 똑같은 것을 입력하고 새/비디오를 찾으십시오. 이것은 USB 웹캠입니다. 이렇게하면 재설정 될 때까지 Pi가 적용되므로 조심해야합니다. mv /dev/videoX videoY X는 USB 웹캠 번호이고 Y는 원래 번호입니다. 이것은 파이의 기본 카메라를 대체합니다. 이것은 당신이 당신의 파이이 대안이

#!/bin/bash 
mv /dev/videoX videoY 

를 시작하고 배치에서 실행되는 bash는 파일을 생성하고, 시작이마다 할 필요하므로 영구적으로하지 않습니다 당신의 파이의 /etc/init.d 디렉토리에 . 실행 권한을 부여하려면 chmod 755 /etc/init.d/FILENAME.sh을 사용해야 할 수도 있습니다.

+0

내 cv2와 관련하여 문제가되지 않는 것 .VideoCapture() 괄호 안의 숫자는 0이지만 이것은 내 컴퓨터 일 수 있습니다. 나는 방금 1이 저에게 오류를 줄 것이라고 발견했습니다. –

0

numpy 라이브러리를 가져 오지 않고 numpy를 가져온 다음 시도해보십시오.