cv2没有显示任何东西

时间:2017-11-17 04:07:32

标签: python pygame cv2

我正在尝试使用笔记本电脑相机拍照并显示图片,我正在使用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

1 个答案:

答案 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)