【问题标题】:Python with Gstreamer pipeline带有 Gstreamer 管道的 Python
【发布时间】:2016-11-23 22:40:25
【问题描述】:

我正在开发一个 Udoo,试图让相机拍摄一张我可以在 Python 中操作的照片。

到目前为止,相机都可以使用

gst-launch-1.0 imxv4l2videosrc ! imxipuvideosink

我也可以拍单张照片

gst-launch-1.0 imxv4l2videosrc num-buffers=1 ! video/x-raw ! jpegenc ! filesink location=output.jpg

here 看来,您似乎可以使用 OpenCV 从 Python 中的 gstreamer 流中直接读取。

这是我的python代码:

import cv2
cam = cv2.VideoCapture("imxv4l2videosrc ! video/x-raw ! appsink")
ret, image = cam.read()

但是,ret 是False,而 image 什么都不是。

有些地方说这仅适用于 OpenCV 3.0+,而其他地方则说 2.4.x,但我似乎无法找到它适用于哪个版本的实际答案。

如果我需要更新到 OpenCV 3.0,我需要更新哪一部分?我通过 python-opencv 包下的 apt 存储库下载了 OpenCV。那么我需要更新 Python 吗?我可以从源代码构建 OpenCV,Python 会自动使用最新版本吗?我很困惑。

【问题讨论】:

  • 可能没有比这更糟糕的时间来发布问题了。

标签: python c++ opencv gstreamer python-gstreamer


【解决方案1】:

Ubuntu/Debian 版本是旧的 2.4.x,要获得最后一个,您需要从源代码编译它。

这里有两个关于如何做到这一点的教程:

  1. https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_setup_in_fedora/py_setup_in_fedora.html#installing-opencv-from-source
  2. http://www.pyimagesearch.com/2015/07/20/install-opencv-3-0-and-python-3-4-on-ubuntu/

第一个是针对Fedora 上的Python 2.7,第二个是针对Ubuntu 上的Python 3.4

【讨论】:

  • 我交叉引用了您的两个链接,并在 Udoo Dual 上运行了 Python 2.7 的 OpenCV。万一有人通过搜索来到这里,我在 Udoo 论坛上发帖:udoo.org/forum/threads/…
猜你喜欢
  • 2021-11-01
  • 1970-01-01
  • 2016-09-02
  • 2018-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多