2014-01-22 3 views
1

저는 프로그램을 실행하는 데 Python cv2 모듈을 사용하고 있습니다.Opencv 및 Python에서 외부 웹캠이 작동하지 않습니다.

inbuilt 웹캠에 액세스 할 수 있지만 외부 웹캠을 사용할 때 작동하지 않습니다.

나는 내가 심지어 장치 관리자를 사용하여 붙박이 웹캠을 비활성화

VideoCapture(1) # or any other no.s like 0,1,2,3 etc etc. 

처럼 모든 코드를 사용했다.

하지만 아무 것도 작동하지 않습니다. pythonxy를 사용하고 있습니다. 명령 프롬프트에서도 시도했습니다. 여전히 작동하지 않습니다.

나는 다음과 같은 오류를

runfile('C:/Users/Prashant/Documents/Python Scripts/Circledetection.py',  wdir=r'C:/Users/Prashant/Documents/Python Scripts') 
OpenCV Error: Assertion failed (scn == 3 || scn == 4) in unknown function, file ..\..\..\modules\imgproc\src\color.cpp, line 3402 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 540, in runfile 
    execfile(filename, namespace) 
    File "C:/Users/Prashant/Documents/Python Scripts/Circledetection.py", line 27, in <module> 
    prev_gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY) 
cv2.error: ..\..\..\modules\imgproc\src\color.cpp:3402: error: (-215) scn == 3 || scn == 4 
+0

오류는 캡처가 열리지 않았기 때문에 이미지가 비어 있다는 것을 나타냅니다. 외부 웹캠에 적절한 드라이버를 설치하십시오. – berak

+0

win8 카메라 응용 프로그램의 웹캠을 사용할 수 있습니다. 장치 관리자에서 드라이버를 업데이트 할 때 "Windows에서 해당 장치의 드라이버 소프트웨어가 최신 것으로 확인되었습니다"라는 메시지가 표시됩니다. –

답변

0

을 얻을 주장은 이미지 3 (RGB, BGR 등) 채널 또는 4 개 채널 (3 개 채널 + 알파)가 발생하지 않는 것을 의미한다. 이것은 분명히 존재하지 않는 이미지로 인해 발생할 수 있습니다.

이것은 카메라가 작동하지 않기 때문일 수 있지만, 여전히 카메라를 준비 중이므로 처음 몇 번의 read() 동안 카메라가 사용 가능한 프레임을 제공하지 않을 가능성이 있습니다.

가장 쉬운 방법

retv, frame = cam.read() 같은 if frame: 또는 if retv:을 확인하는 것입니다을 사용하는 가정이 문제를 해결합니다.

이미지가 없으면 처리를 건너 뛰고 몇 프레임 안에는 읽을 수있는 입력이 있어야합니다.

0

올바른 색인을 사용하고 있습니까? Videocapture을 사용하면 외부 카메라가 입력 목록의 마지막 요소로 표시되기 때문에 Videocapture(-1)을 사용해 볼 수도 있습니다. Videocapture도 장치 이름을 반환 할 수 있으므로 입력 장치 인덱스 목록을 반복하여 "친숙한 이름"을 인쇄하여 올바른 장치를 사용하고 있는지 확인하십시오.

0

VideoCapture(0)에서 VideoCapture(1)까지 언급했습니다.
"1"은 외부 카메라 번호를 의미합니다.

import numpy as np import cv2 

cap = cv2.VideoCapture(1) 
while(1): 
    ret, frame = cap.read() 
    #print(height) 
    #cv2.imshow("Cropped Image", crop_img) 
    #gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 
    cv2.imshow('frame',frame) 
    if cv2.waitKey(1) & 0xFF == ord('q'): 
     break 

cap.release() cv2.destroyAllWindows() 
관련 문제