由于jetson nano 是arm64 的cpu,所以虽然是linux系统,很多地方却不能和pc混为一谈。加之本次使用的是配套的imx219摄像头(csi接口),也不可以使用cv2.VideoCapture(0)来打开摄像头,需要用csi-camera官方的源码。代码和环境配置都花了一点时间,先上成果吧。
代码我之后会上传我的代码,大家可以下载下来一起讨论。
环境配置这块,主要就是opencv(大于3.4的版本),gstreamer,numpy,加上别的会报错Failed to load module的数据库,基本上用pip和apt都可以装好,opencv最复杂,还要cmake和make,大概一个小时。建议装好之后检测一下安装的版本确认已经安装好,或者重装一次,它不会覆盖只会提醒已是最新版本。
补充:如果启动程序,发现摄像头打不开,提示 gstreamer或者pipeline出错的话,尝试以下代码:
sudo systemctl restart nvargus-daemon
附上opencv 和csi-camera的源码链接,不用科学上网。
opencv:https://docs.opencv.org/3.3.1/d6/d00/tutorial_py_root.html
csi-camera:https://github.com/JetsonHacksNano/CSI-Camera
总结:该掉进去的坑一个也不能省。多看源码,多查国内外的解决办法,反复调试,才是最有效的捷径。