【发布时间】:2019-01-08 16:16:30
【问题描述】:
我已经从源代码构建了我自己的 opencv python 包。
import cv2
print(cv2.__version__)
打印:3.4.5
现在我面临的问题是关于使用 opencv 的 VideoCapture 类中的 gstreamer。我试图让这个最小的工作示例在 python3 上运行
cap = cv2.VideoCapture("videotestsrc ! appsink")
if not cap.isOpened():
print("Cannot capture test src. Exiting.")
quit()
while True:
ret, frame = cap.read()
if ret == False:
break
cv2.imshow("CVtest",frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
捕获失败,产生上面的打印(请参阅if 声明)。我检查了:
import cv2
print(cv2.getBuildInformation())
打印:
Video I/O:
DC1394: NO
FFMPEG: NO
avcodec: NO
avformat: NO
avutil: NO
swscale: NO
avresample: NO
GStreamer: NO
libv4l/libv4l2: NO
v4l/v4l2: linux/videodev2.h
看到这一点,我的 gstreamer 管道不起作用是绝对有道理的。我确保在 OpenCV 的 ccmake 期间将 WITH_GSTREAMER 设置为 ON(它已经是)。问题仍然存在。我什至也尝试将 WITH_GSTREAMER_0_10 设置为 ON。从 cv2 python 模块启用 gstreamer 仍然没有运气。
在有人建议使用 pip3 安装 cv2 之前。我也试过了。从 pip 获取包的问题是,它根本不允许您配置 gstreamer 支持。
谁能在这里提供帮助?
【问题讨论】:
标签: python python-3.x opencv gstreamer