Ubuntu环境下ROS安装自己OPENCV版本(下)

本文涉及的产品
资源编排,不限时长
简介: Ubuntu环境下ROS安装自己OPENCV版本(下)

(2)除了上面去掉cv_bridge手动指定路径外。还有一种方法就是修改cv_bridge的配置文件,使得cv_bridge去调用我们自己安装的OpenCV版本,具体方式如下。


首先打开终端并进入cv_bridge配置文件所在目录,并用gedit指令打开该配置文件。


$ cd /opt/ros/kinetic/share/cv_bridge/cmake/
$ sudo gedit cv_bridgeConfig.cmake

20200504165949941.png


然后按ctrl+f,输入关键词include找到以下内容并按图中的方式进行修改。


20200504170009965.png


将默认的OpenCV头文件目录替换后,再按ctrl+f并输入关键词libraries可以找到下图的区域,我们将其库文件也进行替换。


20200504170218252.png


与头文件直接写入目录的方式不同,库文件是将文件本身也写入到配置文件中。而OpenCV的库文件有很多种,如下图所示。


20200504170101987.png


所以我们通常都将core、highgui、imgproc等常用的库文件写入到配置文件中,万一遇到要用的函数的库文件没有包含在配置文件中只要手动添加就可以。


修改cv_bridge的配置文件结束后,我们只需要在工程的CMakeLists.txt文件中的find_package加入cv_bridge就能够使用自己安装的OpenCV版本。不需要再像(1)方法中那样手动指定路径,而且这样做的好处就是能够使用cv_bridge。因为该包在OpenCV图像与ROS图像之间的转换中会经常用到。


20200504170336764.png


这时候再编译工程就可以通过了,但奇怪的是我们发现编译输出OpenCV的版本还是3.3.1并且配置文件还是默认的OpenCV3,如下图所示。


20200504170357313.png


然后我在cv_bridge配置文件中输入message(STATUS “opencv version: ${OpenCV_VERSION}”)来寻找哪条语句将OpenCV的版本号改回了ROS默认的版本。最终,在配置文件的最后几行的一条语句下面会出现版本号从Opencv 2.4.13变成Opencv 3.3.1。因此,该语句就是修改配置文件的路径的地方。然后,我用message找出修改OpenCV配置文件路径所在路径就知道了那个文件下面修改了OpenCV的配置文件,详细如下图所示。


20200504170443417.png


然后在终端下面用gedit打开cv_bridge-extras.cmake文件,就发现它修改的地方了。


20200504170500523.png


我们对该文件进行修改,把自己安装的OpenCV对应的目录输入到文件中,如下图所示:


20200504170521393.png


再运行catkin_make编译工程就可以发现版本号回到了我们指定的版本号。当然,这只是对于显示设置而已,对于使用OpenCV没有太大的影响。


(3)还有一种方法就是cv_bridge与手动指定结合的方式。我们打开自己安装的OpenCV的配置文件可以发现该配置文件主要是用来设置一些OpenCV的相关信息,如下图所示。


20200504170538755.png


然后我们只要在cv_bridge中导入OpenCV的配置文件,那么只要使用cv_bridge的包就可以在ROS中使用相关的OpenCV版本,如下图所示。


2020050417055441.png


同样从配置文件中得到库函数目录的路径,如下图所示。


20200504170642216.png


上面要注意的是在给系统赋予OpenCV头文件和库文件目录路径时,千万不要忘记把cv_bridge的头文件和库文件目录路径忘记赋给系统。最后把cv_bridge配置文件设置OpenCV参数的选项注释掉,如下图所示。


2020050417065462.png


以后再遇到其他OpenCV与cv_bridge之间的兼容性问题,再补充。


相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
相关文章
|
2月前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(五):18.04安装多版本CUDA
这篇博客文章介绍了在Ubuntu 18.04系统上如何安装和切换不同版本的CUDA,以及如何安装不同版本的cuDNN。
241 2
|
2月前
|
并行计算 PyTorch TensorFlow
Ubuntu安装笔记(一):安装显卡驱动、cuda/cudnn、Anaconda、Pytorch、Tensorflow、Opencv、Visdom、FFMPEG、卸载一些不必要的预装软件
这篇文章是关于如何在Ubuntu操作系统上安装显卡驱动、CUDA、CUDNN、Anaconda、PyTorch、TensorFlow、OpenCV、FFMPEG以及卸载不必要的预装软件的详细指南。
5130 3
|
2天前
|
JSON Ubuntu 开发者
ubuntu 22安装lua环境&&编译lua cjson模块
通过上述步骤,可以在 Ubuntu 22.04 系统上成功安装 Lua 环境,并使用 LuaRocks 或手动编译的方式安装 lua-cjson 模块。本文详细介绍了每一步的命令和操作,确保每一步都能顺利完成,适合需要在 Ubuntu 系统上配置 Lua 开发环境的开发者参考和使用。
28 13
|
2月前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
224 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
2月前
|
Ubuntu Linux C语言
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
本文介绍了在Ubuntu 18.04系统上编译安装OpenCV 3.4.0及其扩展包opencv_contrib 3.4.0的详细步骤,包括下载源码、安装依赖、配置CMake和编译安装,以及常见问题的解决方法。
276 1
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
|
2月前
|
PyTorch TensorFlow 算法框架/工具
Jetson环境安装(一):Ubuntu18.04安装pytorch、opencv、onnx、tensorflow、setuptools、pycuda....
本文提供了在Ubuntu 18.04操作系统的NVIDIA Jetson平台上安装深度学习和计算机视觉相关库的详细步骤,包括PyTorch、OpenCV、ONNX、TensorFlow等。
134 1
Jetson环境安装(一):Ubuntu18.04安装pytorch、opencv、onnx、tensorflow、setuptools、pycuda....
|
2月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
603 3
|
2月前
|
Ubuntu
Ubuntu学习笔记(七):ubuntu下jupyter指定虚拟环境
本文介绍了如何在Ubuntu系统下使用Anaconda和Jupyter Notebook指定并切换不同的虚拟环境。
112 0
Ubuntu学习笔记(七):ubuntu下jupyter指定虚拟环境
|
2月前
|
并行计算 Ubuntu 算法
Ubuntu18 服务器 更新升级CUDA版本 pyenv nvidia ubuntu1804 原11.2升级到PyTorch要求12.1 全过程详细记录 apt update
Ubuntu18 服务器 更新升级CUDA版本 pyenv nvidia ubuntu1804 原11.2升级到PyTorch要求12.1 全过程详细记录 apt update
130 0
|
2月前
|
计算机视觉
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
这篇文章详细介绍了OpenCV库中的图像二值化函数`cv2.threshold`,包括二值化的概念、常见的阈值类型、函数的参数说明以及通过代码实例展示了如何应用该函数进行图像二值化处理,并展示了运行结果。
588 0
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解