2017-12-15 30 views
-1

다른 솔루션을 확인했지만 내 질문에 답변하지 않았습니다. 제 문제는 비디오에서 하나의 프레임 만 캡처하려고 할 때마다 (기본적으로 웹캠으로 사진을 찍고 싶습니다) 검은 색 창이 나타납니다.Python으로 단일 프레임 캡처 (웹캠 사용)

코드 -

import cv2 


cam = cv2.VideoCapture(0) 
frame = cam.read()[1] 
cv2.imwrite('img2.png', frame) 
cv2.imshow("img1", frame) 

스크린 샷 - https://imgur.com/kfeXYvQ

내 웹캠 USB, 초당 30 프레임에서 720입니다.

감사합니다.

답변

1

두 가지 중 하나입니다. cv2.imshow() 뒤에 waitKey()을 추가해야 할 수도 있습니다. 또는 오류로 인한 카메라 반환을 확인하지 않습니다. 연결 문제 일 수 있습니다. 여기에 할 두 가지가 있습니다.

import cv2 

cam = cv2.VideoCapture(0) 
retval, frame = cam.read() 
if retval != True: 
    raise ValueError("Can't read frame") 

cv2.imwrite('img2.png', frame) 
cv2.imshow("img1", frame) 
cv2.waitKey() 

waitKey() 기능은 사용자가 창에서 키를 입력 할 때까지 프로그램을 중지합니다.

+0

여전히 작동하지 않았습니다 ... 심지어 키를 누른 다음 컴퓨터를 다시 시작했지만 캡쳐 화면 링크에 표시된 것과 같은 검은 색 창이 나타납니다. –

+0

@SajjadAbbas 'retval'에 의해 반환되는 내용 ? 'img2.png'에서 무엇이 나올까요? – SCB

+0

retval return을 보는 방법을 모르겠습니다. 그러나 img2는 스크린 샷처럼 문자 그대로 모두 검은 색입니다. –