当前位置: 首页 > 面试题库 >

如何使用Python访问我的网络摄像头?

高嘉树
2023-03-14
问题内容

我想从Python访问我的网络摄像头。

我尝试使用VideoCapture扩展(教程),但对我而言效果不佳,我不得不解决一些问题,例如分辨率>
320x230时它有点慢,有时它返回None时没有明显原因。

是否有更好的方法从Python访问我的网络摄像头?


问题答案:

OpenCV支持从网络摄像头获取数据,并且默认情况下随附Python包装器,您还需要安装numpyOpenCV
Python扩展名(称为cv2)才能工作。从2019开始,您可以使用pip安装这两个库: pip install numpy pip install opencv-python

有关在Python中使用OpenCV的更多信息。

从使用opencv和python显示网络摄像头feed复制的示例:

import cv2

cv2.namedWindow("preview")
vc = cv2.VideoCapture(0)

if vc.isOpened(): # try to get the first frame
    rval, frame = vc.read()
else:
    rval = False

while rval:
    cv2.imshow("preview", frame)
    rval, frame = vc.read()
    key = cv2.waitKey(20)
    if key == 27: # exit on ESC
        break
cv2.destroyWindow("preview")


 类似资料:
  • 我在主机上运行Ubuntu18.04,在LXC容器中运行Ubuntu20.04。我的目标是在一个LXC容器中运行ROS2(需要Ubuntu 20.04),然后用它连接两个dynamixel伺服电机和一个USB Logitech网络摄像头。我还在容器中安装了miniconda,以便安装OpenCV和dlib。我还在容器内使用conda虚拟环境。 所有提到的软件工作正常。现在我需要用OpenCV访问网

  • 我想使用ffmpeg直播网络摄像头。我的罗技c920网络摄像头具有原始和压缩数据的输出流。命令产生以下控制台输出: 我想复制压缩的h264图像并将其发送到ffserver。 当我使用这个命令程序获取原始数据并使用h264编解码器转码。 当我将更改为时,我收到一个错误,因为ffmpeg尝试复制原始相机图像。 如何访问h264压缩图像并将其发送到服务器?

  • 问题内容: 以前,我已经将可运行的网络摄像头代码放入我的应用程序中,但是现在当我更新到AngularJS v1.5.0时,它无法正常工作。我正在使用与v1.3.0完美配合的网络摄像头指令。 这是我的代码: 但是现在,AngularJS v1.5.0给出了以下错误: 我还尝试对AngularJS ng-Camera使用其他解决方案,但即使是演示页也不适用于我。 注意: 我知道问题在于我们无法从Ang

  • 我试图从我的摄像头获取图像使用导入OpenCV的python代码。代码如下: 代码工作正常,除了相机默认分辨率为640x480,我的代码似乎只能设置比这更低的分辨率值。例如,我可以将图像大小设置为320x240,但我不能将其更改为800x600。我没有出现错误:只是分辨率设置为默认值(640x480),因为我试图将其设置为更高的值。 我正在使用的摄像头(没有其他网络摄像头连接到计算机)是Quick

  • 问题内容: 我一直在尝试使用Python创建一个简单的程序,该程序使用OpenCV从我的网络摄像头获取视频供稿并将其显示在屏幕上。 我知道我之所以在这里,是因为创建了窗口,并且网络摄像头上的灯闪烁了,但是它似乎在窗口中什么都没有显示。希望有人可以解释我在做什么错。 在不相关的注释上,我注意到我的网络摄像头有时会在中更改其索引号,有时我需要输入0、1或2,即使我只连接了一个摄像头,也没有拔下插头(我

  • 问题内容: 我想从网络摄像头捕获单个图像并将其保存到磁盘。我想用Java或Python(最好是Java)做到这一点。我想要在64位Win7和32位Linux上都可以使用的东西。 编辑:我使用Python 3.x,而不是2.x 因为在其他地方我都看到这个问题,使人们设法感到困惑,所以我将明确说明一些事情: 我不想使用处理 除上述语言外,我不想使用任何其他语言 我确实想以任何方式,形状或形式在屏幕上显