4

我需要使用 GStreamer 将数据传递给一些 OpenCV/Cuda 分类和深度学习系统。

问题是我是 GStreamer 和 Cuda 的新手,所以我需要做一些简单的例子来组合尽可能少的元素——这里是 OpenCV 和 Gstreamer。

现在我只希望 GStreamer 在循环中逐帧将“videotestsrc pattern=ball”传递给 cv2.imshow()

问题是我似乎无法打开 cv2.VideoCapture() 元素-正确是因为管道错误

我现在已经花了几个小时并且已经“放弃”了

OpenCV 是 v3.4.0 - 使用 GStreamer 支持编译 Python 是 3.6.8

这是我现在拥有的代码 -

我用谷歌搜索和搜索并尝试了许多管道组合,但没有什么能让我打开视频捕捉元素

#!/usr/bin/env python3
import cv2

cap = cv2.VideoCapture("videotestsrc ! video/x-raw,framerate=20/1 ! appsink", cv2.CAP_GSTREAMER)

# Commentet out to continiue to capture
# Evaluates true => app closes
#if not cap.isOpened():
#    print('VideoCapture not opened')
#    exit(0)

while(True):
    ret, frame = cap.read()
    print(ret)     # 'False' when run
    print(frame)   # 'None' when run

    cv2.imshow('frame',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

cap.isOpened() 返回 false

cap.read() 返回 false,无

4

0 回答 0