ros+opencv的一些安装经验

记录一些乱七八糟的过程

1、安装ROS时候一般会默认安装opencv3.3.1,可以在/opt/ros/melodic/include下看到opencv3.3.1的文件夹。
我安装ros后又安装了opencv3.4.2,发现冲突以后选择用简单粗暴的死亡命令卸载opencv 3.4.2

sudo find / -name "*opencv*" -exec rm -i {} \;

结局就是把ros下的opencv库相关也一起卸载了。啥都报错。。
(1)重新安装ros之后,这些库也没有重新安装,因为系统认为它们已安装,但其中没有任何内容。
(2)只好重装opencv3.4.2,用set directory的方法尝试。

2、
opencv官网(http://opencv.org/downloads.html)
1、Ubuntu下安装opencv与安装python-opencv不一样
(1)python-opencv相当于python下的一个包
可以直接用pip安装,很简单的一句话就可以了

pip install opencv-python

查看python-opencv版本:
在这里插入图片描述(2)在ubuntu下安装
参考这篇
make的时候报错

/usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
 #error This file requires compiler and library support \

原因是CMakeLists.txt文件没有添加对C++11的支持
解决:在CMakeList里添加一行

SET( CMAKE_CXX_FLAGS "-std=c++11 -O3")

make成功后安装完成,配置好环境后查看已安装的opencv版本

pkg-config --modversion opencv

2、
从这篇博客里了解到
cv_bridge是OpenCV与ROS之间的格式转换桥梁
在这里插入图片描述在ros目录下可以找到cv_bridge的配置文件

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

借用博主的图
在这里插入图片描述可以看到,正常来讲cv_bridge是默认指定的用ros安装的opencv
在这里插入图片描述因此在这里把opecv的头文件和库文件都替换
(具体看链接里那篇博客)
改成了这个样子
在这里插入图片描述
在这里插入图片描述将通常core、highgui、imgproc等常用的库文件写入到配置文件中,万一遇到要用的函数的库文件没有包含在配置文件中只要手动添加就可以。
修改cv_bridge的配置文件结束后,我们只需要在工程的CMakeLists.txt文件中的find_package加入cv_bridge就能够使用自己安装的OpenCV版本。

3、
还有另一种方法

set(OpenCV_DIR /opt/ros/kinetic/share/OpenCV-3.3.1-dev/)
find_package(catkin REQUIRED COMPONENTS
  OpenCV
)

find_package( OpenCV REQUIRED )

include_directories( ${OpenCV_INCLUDE_DIRS} )

然后link your targets against OpenCV_LIBS:

target_link_libraries( your_target ${OpenCV_LIBS} )

4、在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值