在Xavier上另外配置OpenCv真jb恶心人,一万句fuck可以表达我此刻的心情
OpenCV4.0没有配置成功,编译thor用刷机时安装的opencv版本应该就可以,
一 关于ROS
域控制器烧写JetPack4.2
后,Tegra自动安装了ROS-melodic,opencv3.3.1
,但这个不是完整版的ROS,因为参考Ubuntu 18.04 + ROS Melodic 安装OpenCV,ROS中有3个opencv package:vision_opencv,cv_bridge,image_transport
,我在/opt/ros/melodic/share
中只见到了vision_opencv
文件夹,而且里面只包含了一个package.xml
,于是卸载原装ROS,重新安装,参考Ubuntu 18.04 安装 ROS,并解决 sudo rosdep init 各种问题。
重新安装ROS后,opt/ros/melodic/share
文件夹里多了很多内容,证明烧写进的ROS是不完整的
(2020.10.14更新)刷了米文JetPack4.4后,自带ROS-melodic,其是否完整好用并没有试验,sudo apt-get purge libopencv*
卸载刷机自带的OpenCV4.1.1后,ROS同时也被破坏,需要sudo apt-get purge ros-*
卸载ROS后重新安装。
二 关于OpenCV
1 烧写后原生opencv的版本和安装路径
参考linux下查看opencv安装路径以及版本号,用python2 python3
打印opencv的版本,和用pkg-config opencv --modversion
命令行查到的opencv版本都是3.3.1,用sudo find / -iname "*opencv*" > opencv_find.txt
列出opencv的安装路径。
2021.5.7更新
关于opencv.pc
文件的说明,以及源码编译opencv的位置、环境变量的配置,可以学习这篇极好的文章【CV实战】Ubuntu18.04源码编译安装opencv-3.4.X+测试demo
(2020.10.14更新) 执行pkg-config opencv --modversion
查opencv版本的原理是:在系统中搜索opencvx.pc
文件,文件中包含了opencv安装路径、头文件路径、库文件路径、版本等信息。
(2020.11.1更新) 刷机JetPack4.2后,系统中存在两个opencv.pc
:/usr/lib/aarch64-linux-gnu/pkgcfg/opencv.pc
和/usr/local/lib/pkgcfg/opencv.pc
,在CMakeLists.txt
中find_package{REQUIRED OpenCV}
或者执行pkg-cfg --modversion opencv
查看版本时,会优先在用户的库/usr/local/lib/
里搜索pkgcfg/opencv.pc
,进而按照.pc文件中指定的库目录和头文件目录路径搜索。如果/usr/local/lib/
中没有opencv.pc
,会进而搜索系统