记录一些乱七八糟的过程
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} )