【发布时间】:2020-01-19 05:56:07
【问题描述】:
我在 Jetson Nano 上使用 Warriors 分支(poky Warriors、meta-tegra Warriors-l4t-r32.2、openembedded Warriors)和 CUDA 10 创建了一个最小的 xfce 映像。
图像启动并运行完美,相机测试:
$ gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM),width=3820, height=2464, framerate=21/1, format=NV12' ! nvvidconv flip-method=0 ! 'video/x-raw,width=960, height=616' ! nvvidconv ! nvegltransform ! nveglglessink -e
像魅力一样工作。
现在我想在相机源上使用 OpenCV,但我无法让它工作。
我已将这些包添加到IMAGE_INSTALL:
...
opencv \
libopencv-core \
libopencv-imgproc \
opencv-samples \
gstreamer1.0-omx-tegra \
python3 \
python3-modules \
python3-dev \
python-numpy \
...
安装 OpenCV。当我运行 /usr/bin/opencv_version 时,它返回版本 3.4.5,python 版本是 3.7.2,GCC 版本是 7.2.1。
当我尝试运行 this OpenCV test code 时,它会返回
[ WARN:0] VIDEOIO(createGStreamerCapture(filename)): trying ...
(python3.7:5163): GStreamer-CRITICAL **: ..._: gst_element_get_state: assertion 'GST_IS_ELEMENT (element)' failed
[ WARN:0] VIDEOIO(createGStreamerCapture(filename)): result=(nil) isOpened=-1 ...
Unable to open camera
我尝试在网上四处寻找解决方案,但它们似乎不起作用。
编辑: 在 VideoCapture 函数中使用 CAP_GSTREAMER 似乎确实存在问题,因为使用 CAP_FFMPEG 运行相同的程序在 mp4 视频上运行良好。
使用 cv2.VideoCapture("/dev/video0", CAP_FFMPEG) 只会返回 isOpen=-1。如何让相机在 python 中打开?
【问题讨论】:
标签: python opencv yocto nvidia-jetson nvidia-jetson-nano