在Python3中的Jetson xavier上使用tx2 dev-kit CSI摄像机

时间:2018-10-15 14:49:31

标签: python gstreamer nvidia-jetson

我能够在Xavier上打开实时摄像头流的唯一方法是从控制台启动gstreamer

gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM),width=1024, height=768, framerate=120/1, format=NV12' ! nvvidconv flip-method=0 ! nvegltransform ! nveglglessink -e

当我在python或c ++中尝试任何视频捕获命令时,我不断收到有关“相机无法打开”或“视频流类型错误”的错误 我在opencv 4、3.4、3.3中尝试了此操作,但无济于事。

我不认为它是配置opencv构建的方式,但可能是必须实例化xavier摄像机捕获的方式。使用tx2 dev-kit相机进行实时视频捕获的任何类型的示例python实现都会非常有帮助吗?

谢谢

1 个答案:

答案 0 :(得分:0)

您需要通过gstreamer api访问Jetson相机。

C ++示例

cv::VideoCapture capture("nvarguscamerasrc ! 'video/x-raw(memory:NVMM),width=1024, height=768, framerate=120/1, format=NV12' ! nvvidconv flip-method=0 ! appsink");

或Python

cap = cv2.VideoCapture('nvarguscamerasrc ! 'video/x-raw(memory:NVMM),width=1024, height=768, framerate=120/1, format=NV12' ! nvvidconv flip-method=0 ! appsink')

但是,您的OpenCv构建中可能缺少gstreamer。如果这不起作用,则可能需要在启用所有gstreamer功能/解决依赖关系的情况下重建OpenCv。