我正在尝试使用笔记本电脑相机拍照并显示图片,我正在使用python 3.6.3和Windows 我试图使用cv2模块,我使用了这个简单的代码
import cv2
video=cv2.VideoCapture(0)
print ( video.read())
video.release()
它只接收黑色图片,这是我从print(video.read())得到的:
(True, array([[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
...,
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]]], dtype=uint8))
我尝试了不同的代码,并尝试将video=cv2.VideoCapture(0)
更改为video=cv2.VideoCapture(1)
或video=cv2.VideoCapture(-1)
当我将其更改为1或-1时打印(False,none)并且我确信我的所有司机都不需要任何更新
还有其他方法从我的笔记本电脑相机拍照吗?除了cv2和pygame?只要pygame相机只适用于linux
答案 0 :(得分:0)
这是我这样做的方式而且没有问题:
video_capture = cv2.VideoCapture(0)
while True:
if not video_capture.isOpened():
print('Unable to load camera.')
sleep(5)
pass
# Capture frame-by-frame
ret, frame = video_capture.read()
你对帧变量的看法是你的图片,所以你可以用以下内容将它保存到磁盘:
cv2.imwrite("mypic.jpg",frame)