Мне нужно использовать 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, Нет