0

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

到目前为止,相机与

gst-launch-1.0 imxv4l2videosrc ! imxipuvideosink

我也可以用

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

这里开始,您似乎可以使用 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 会自动使用最新版本吗?我很混乱。

4

1 回答 1

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/

第一个是Python 2.7on Fedora,第二个是Python 3.4on Ubuntu

于 2016-11-26T10:44:58.423 回答