【问题标题】:How do you capture an image from a webcam in python WITHOUT OpenCV如何在没有 OpenCV 的情况下在 python 中从网络摄像头捕获图像
【发布时间】:2017-08-02 05:20:56
【问题描述】:

我在 Raspberry Pi Zero 上使用 python 编程,我想从 USB 网络摄像头捕获图像,但如果没有 OpenCV,我找不到这样做的方法。我不想使用 OpenCV,因为对于我正在做的事情来说,它在功能和大小上都太过分了(只是从相机中获取原始图像,没有处理),而且在 Pi Zero 上编译需要 10 多个小时。请告诉我还有另一种方法。 Pygame 在另一个类似的问题中被提及,但仅适用于 Windows。有什么想法,或者我必须向 OpenCV 大神们牺牲半 GB 的闪存并花费 10 多个小时编译其代码以获取图像吗?

【问题讨论】:

  • @Coldspeed - OP 想要在 没有 OpenCV 的情况下做到这一点。
  • @rayryeng 说得对。链接的问题未回答此问题,并且尚未显示为重复问题。
  • 虽然 Picamera 适用于带状相机,但我认为它不支持 USB 相机,而且我使用的是没有带状端口的 Rpi zero v1。
  • 鉴于上述意图 - 检查捕获服务所需的源代码的依赖关系图并为此类 RPi 编译创建一个简约支持集怎么样?似乎需要不到 10 多个小时的时间,并且应该是足够的资源。
  • 我不知道该怎么做,估计要花 10 个小时才能找到。在 OpenCV 解决方案中,它可能是下面的 cython,我也没有使用 cython 的经验。

标签: python raspberry-pi webcam


【解决方案1】:

似乎有 ctypes 绑定到 Video 4 Linux 2 用户空间库。

ctypes 很麻烦(如果你有时间,可以用 cffi 代替,然后给那个包的作者发一个补丁),但是它们应该可以工作。

【讨论】:

  • 请注意,v4fl2 仅是 py3,但 py2 的生命周期是 2020 年,因此您现在应该只为 py3 编写代码。
【解决方案2】:

你看过fswebcam吗?我过去在我一直在做的一个项目中使用了它。它非常易于安装和使用,这对我来说是一个很好的指标,表明在您的 RPi Zero 上进行设置将变得简单快捷。链接的文档页面应该足以让您开始了解它是否适​​合您,但如果您还没有,绝对值得一试!

【讨论】:

  • 我确实看到了 fswebcam,但 fswebcam 是一个没有 python API 的二进制文件。这意味着我需要使用子进程来启动它,这会创建一个单独的线程并使用额外的资源来继续检查进程是否完成。直接访问要好得多,尤其是在单核处理器上。
  • @amoose136 这是错误的心态。如果您不以愚蠢的方式使用它们,则流程并不是特别繁重。捕获屏幕截图是一种非常合理的用途。
  • 在当前的实现中,我还运行实时音频处理以隔离和检测特定音频频率强度的变化,任何减速都会影响 Pi Zero 上的性能,因为处理器几乎没有一开始就足够快地做到这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-18
  • 2013-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多