我正在开发一个 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 会自动使用最新版本吗?我很混乱。