将Gstreamer启动转换为摄像机OV9281的OpenCV管道

时间:2020-09-16 13:01:41

标签: opencv python-3.6 gstreamer

我正在尝试将gst-launch命令转换为opencv管道。使用以下gst-launch,我可以启动相机,

>>> content of ARGS:
('col1', 'col2')
>>> content of KWARGS:
{'color': (0.12156862745098039, 0.4666666666666667, 0.7058823529411765), 
 'data':        col1      col2    cat
         1  0.981403  0.550882  False
         2  0.467846  0.997084  False
         3  0.119726  0.045255  False}
>>> content of ARGS:
('col1', 'col2')
>>> content of KWARGS:
{'color': (0.12156862745098039, 0.4666666666666667, 0.7058823529411765), 
 'data':        col1      col2   cat
         0  0.651592  0.631109  True}

现在我需要将其转换为Opencv Pipeline。我尝试过,但总是收到以下错误:

[WARN:0]全局/home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap_gstreamer.cpp(711)打开OpenCV | GStreamer警告:错误打开垃圾箱:无法分析大写字母“ video / x-raw,,format =(string)GRAY8” [WARN:0]全局/home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap_gstreamer.cpp(480)isPipelinePlaying OpenCV | GStreamer警告:GStreamer:尚未创建管道 libpng警告:IHDR中图像宽度为零 libpng警告:IHDR中图像高度为零 libpng错误:无效的IHDR数据

这是我要运行的管道。我知道openCV需要BGR格式,

gst-launch-1.0 v4l2src device="/dev/video0" ! “video/x-raw,width=1280,height=800,format=(string)GRAY8” ! videoconvert ! videoscale ! “video/x-raw,width=640,height=400” ! xvimagesink sync=false

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

我通过使用

解决了它
camSet = ‘v4l2src device=/dev/video0 ! video/x-raw,width=1280,height=800,format=(string)GRAY8 ! videoconvert ! videoscale ! video/x-raw,width=640,height=400,format=BGR ! appsink’