Ubuntu环境下ROS安装自己OPENCV版本 |
您所在的位置:网站首页 › ros2版本和ubantu › Ubuntu环境下ROS安装自己OPENCV版本 |
Ubuntu环境下ROS安装自己OPENCV版本
![]() 安装 Opencv 3.2 on Ubuntu 16.04 并创建node测试 —假设我们已经安装好一版OpenCV,一般都安装在/usr/local下。—如果需要安装另一个版本的OpenCV,就不能再安装到/usr/local,而是选择其他路径,否则会覆盖掉之前的版本。 step 1: 安装一些packagesudo apt-get -y install libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip step 2: 创建新的文件夹作为OpenCV的目录mkdir opencv step 3: 将路径转到OpenCV的目录cd opencv step 4: 下载OpenCV的安装包wget https://github.com/Itseez/opencv/archive/3.2.0.zip -O opencv-3.2.0.zip (注:此处3.2.0可换成任意自己需要的版本即可直接下载相应版本) step 5: 解压OpenCV的安装包unzip opencv-3.2.0.zip step 6: 将路径转到opencv-3.2.0的目录cd opencv-3.2.0 step 7: 创建build文件夹mkdir build step 8: 将路径转到build文件夹cd build step 9: 运行cmakecmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON … step 10: 运行makemake -j $(nproc) step 11: 运行installsudo make install step 12: 运行bashsudo /bin/bash -c ‘echo “/usr/local/lib” > /etc/ld.so.conf.d/opencv.conf’ step 13: 运行配置sudo ldconfig step 14: 重启Reboot your machine and run following command to check installed version step 15: 查询版本pkg-config --modversion opencv安装成功!可以创建一个node测试了! 之后则是对ROS环境中的CMakeLists.txt 和 package.xml进行修改。
再就是用find package指令找到OpenCV包。 find_package(OpenCV REQUIRED)指定OpenCV的头文件目录 include_directories( ...... ${OpenCV_INCLUDE_DIRS} ...... )将编译生成的文件与OpenCV的动态库/静态库进行链接。 target_link_libraries( ...... ${OpenCV_LIBS} ...... )总体的CMakeLists.txt文件如下图所示。 (2)除了上面去掉cv_bridge手动指定路径外。还有一种方法就是修改cv_bridge的配置文件,使得cv_bridge去调用我们自己安装的OpenCV版本,具体方式如下。 首先打开终端并进入cv_bridge配置文件所在目录,并用gedit指令打开该配置文件。 $ cd /opt/ros/kinetic/share/cv_bridge/cmake/ $ sudo gedit cv_bridgeConfig.cmake
将默认的OpenCV头文件目录替换后,再按ctrl+f并输入关键词libraries可以找到下图的区域,我们将其库文件也进行替换。 与头文件直接写入目录的方式不同,库文件是将文件本身也写入到配置文件中。而OpenCV的库文件有很多种,如下图所示。 所以我们通常都将core、highgui、imgproc等常用的库文件写入到配置文件中,万一遇到要用的函数的库文件没有包含在配置文件中只要手动添加就可以。 修改cv_bridge的配置文件结束后,我们只需要在工程的CMakeLists.txt文件中的find_package加入cv_bridge就能够使用自己安装的OpenCV版本。不需要再像(1)方法中那样手动指定路径,而且这样做的好处就是能够使用cv_bridge。因为该包在OpenCV图像与ROS图像之间的转换中会经常用到。
然后我在cv_bridge配置文件中输入message(STATUS “opencv version: ${OpenCV_VERSION}”)来寻找哪条语句将OpenCV的版本号改回了ROS默认的版本。最终,在配置文件的最后几行的一条语句下面会出现版本号从Opencv 2.4.13变成Opencv 3.3.1。因此,该语句就是修改配置文件的路径的地方。然后,我用message找出修改OpenCV配置文件路径所在路径就知道了那个文件下面修改了OpenCV的配置文件,详细如下图所示。
再运行catkin_make编译工程就可以发现版本号回到了我们指定的版本号。当然,这只是对于显示设置而已,对于使用OpenCV没有太大的影响。 (3)还有一种方法就是cv_bridge与手动指定结合的方式。我们打开自己安装的OpenCV的配置文件可以发现该配置文件主要是用来设置一些OpenCV的相关信息,如下图所示。
同样从配置文件中得到库函数目录的路径,如下图所示。 上面要注意的是在给系统赋予OpenCV头文件和库文件目录路径时,千万不要忘记把cv_bridge的头文件和库文件目录路径忘记赋给系统。最后把cv_bridge配置文件设置OpenCV参数的选项注释掉,如下图所示。 以后再遇到其他OpenCV与cv_bridge之间的兼容性问题,再补充。 openCVubuntu16.04
打赏 0 点赞 0 收藏 4 分享 微信 微博 QQ 图片 上一篇:SC-LEGO-LOAM 扩展以及深度解析(三) 下一篇:Anaconda虚拟环境中,让Python3使用ROS的cv_bridge |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |