4,270
社区成员
发帖
与我相关
我的任务
分享目的:解决ROS与Opencv之间通信的问题,同时Opencv与cv_bridge不兼容的问题
解决方法:卸载重装;
环境:Ubuntu+ROS
1.卸载原有的cv_bridge:
sudo apt-get remove ros-ros版本-cv-bridge
2.安装新的cv_bridge
下载地址:git clone https://github.com/ros-perception/vision_opencv.git
3.将下载的功能包中的cv_bridge功能包复制到桌面出来,重新编译安装;
在功能包中打开终端,输入对应的命令行:
mkdir build
cd build
cmake ..
make
sudo make install
4.修改配置环境
命令行打开~/.bashrc:gedit ~/.bashrc
在~/.bashrc中添加
export LD_LIBRARY_PATH=/usr/local/lib/
5.修改自己实现功能包的Cmakelist.txt的文件
设置功能包的位置:set(cv_bridge_DIR /usr/local/share/cv_bridge/cmake)
添加功能包:include_directions (${cv_bridge_DIR})和 target_link_libraries(${OpenCV_LIBS})
备注:set必须放置在find_packaga前面,必须添加功能包
6.假如自己安装OpenCV可进行这一步,配置cv_bridge的配置文件:
cd /opt/ros/kinetic/share/cv_bridge/cmake/
sudo gedit cv_bridgeConfig.cmake
然后按ctrl+f,输入关键词include找到以下内容并按图中的方式进行修改。

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

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

备注:通常都将core、highgui、imgproc等常用的库文件写入到配置文件中,万一遇到要用的函数的库文件没有包含在配置文件中只要手动添加就可以。
参考链接:
1. https://blog.csdn.net/wakingking88/article/details/104648636?
2. https://blog.csdn.net/bigdog_1027/article/details/79092263
4,270
社区成员
发帖
与我相关
我的任务
分享加载中
OpenCV中国团队官方博客:https://blog.csdn.net/opencvchina
试试用AI创作助手写篇文章吧