【问题标题】:cv2 not showing any thingcv2没有显示任何东西
【发布时间】:2017-11-17 14:08:53
【问题描述】:

我正在尝试使用笔记本电脑的相机拍照并显示图片,我正在使用 python 3.6.3 和 windows 我尝试使用 cv2 模块,并且我使用了这个简单的代码

import  cv2
video=cv2.VideoCapture(0)
print ( video.read())
video.release()

它只接收黑色图片,这是我从打印中得到的(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 时它打印(假,无)并没有工作,而且我确信我所有的驱动程序都不需要任何更新

还有其他方法可以从我的笔记本电脑相机中拍照吗?除了 cv2 和 pygame 吗?只要 pygame 相机只适用于 linux

【问题讨论】:

  • 在我的笔记本电脑(ThinkPad)上,我必须在某处稳定并开始返回良好结果之前丢弃前十几个帧。如果你尝试这样做会发生什么?
  • 我也试过了,但什么也没发生,我等了半个小时,它一直是黑色的
  • 据我所知CV2 使用pygame 从相机获取图像。

标签: python pygame cv2


【解决方案1】:

这就是我这样做的方式,并且没有问题:

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()

您在 frame 变量中拥有的是您的图片,因此您可以使用以下内容将其保存到磁盘:

cv2.imwrite("mypic.jpg",frame)

【讨论】:

  • 是的,我已经尝试过了,无论我等待多长时间,它都会保持黑色。还有其他东西可以用于 python 3.6.3 从笔记本电脑摄像头获取图像吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-29
相关资源
最近更新 更多