本文转载自JK Jung的帖子:https://jkjung-avt.github.io/tx2-camera-with-python/如果有侵犯到贴主利益,请立刻跟我联系。
在本贴中,贴主“我”分享了如何使用python 代码(及 OpenCV)在Jetson TX2上抓取和显示摄像头影像,包括IP摄像头, USB 网络摄像头和Jetson板载摄像头.这个简单代码也同样可以在Jetson TX1上运行。
1
准备工作
- 需要在Jetson TX2上安装 GStreamer 支持的 python和OpenCV.。我是安装opencv-3.3.0 和python3.
- 如果你是用 IP CAM, 你必须构建好,并且知道它的RTSP URI, 比如. rtsp://admin:XXXXX@192.168.1.64:554.
- 如果你是用USB 网络摄像头(I 使用的是罗技 C920),这个USB摄像头通常安装在 /dev/video1, 因为 Jetson 板载摄像头已经占用了 /dev/video0.
- 安装 gstreamer1.0-plugins-bad ,这个包含了 h264parse 元素. 这是为了解码来自IP摄像头的H.264 RTSP stream 所需要的
$ sudo apt-get install gstreamer1.0-plugins-bad
2
参考
- 我开发的代码是基于这篇 this canny edge detector sample code.
- ACCELERATED GSTREAMER FOR TEGRA X2 USER GUIDE:文档里讲解了nvcamerasrc, nvvidconv 和 omxh264dec .
3
如何运行Tegra 摄像头sample codes
- 从我的 GitHubGist:https://gist.github.com/jkjung-avt/86b60a7723b97da19f7bfa3cb7d2690e 下载tegra-cam.py 源代码 (因为顾虑到很多人访问不了,lady把代码copy到这里:http://www.jetsoner.com/thread-148-1-1.html)
- 按照下面步骤利用Jetson板载摄像头抓取和显示影像。默认分辨率为 1920x1080 @ 30fps.
$ python3 tegra-cam.py
- 按照下面步骤使用 USB 网络摄像头,并且把分辨率设置为1280x720. 注意‘–vid 1’意思是使用 /dev/video1.
$ python3 tegra-cam.py --usb --vid 1 --width 1280 --height 720
- 按照下面步骤使用IP摄像头,把最后的RTSP URI 参数设置为你自己的IP CAM.
$ python3 tegra-cam.py --rtsp --uri rtsp://admin:XXXXXX@192.168.1.64:554
这是我的Jetson TX2用IP摄像头运行tegra - cam的截图。(我还连接了一个更快的r - cnn模型来做人类头部检测,并在捕获图像上绘制边框,但是主视频捕获/显示代码是相同的。)
(点击阅读原文看代码吧...微信排版太麻烦了...lady真是已经尽力了)