环境:
ubuntu20.04
opencv4.5.5
ros: noetic
参考链接:
在ROS中使用OpenCV进行简单的图像处理ROS中使用opencv
第一个链接注释比较多,第二个链接是搞定的,成功的界面是这样的:
读取opencv的程序:
后面还需要编译:
2022年1月7更新:
我之前是加了OpenCV 4 的,但是我全部重新整了一遍发现不需要加4,因为我系统里很干净就一个我编译的opencv4.2,所以我就去掉了4
然后就是运行:
至此能正确显示图像,流程也是没有问题的。
不过有几个问题我没理清楚:
- opencv是我编译好的4.5.5么,还是ROS自带的?
- 收端怎么收的?
等我整明白了来还愿!
经验证上面的opencv用的是ROS自带的,我需要将opencv换成自己的4.5.5版本!
参考链接:
Compiling ROS cv_bridge with Python 3解决Ubuntu环境下ROS Kinetic中的cv_bridge和自己安装OpenCV 2.4.xx兼容性笔记 这个大佬写的巨好!!
Compiling ROS cv_bridge with Python 3OpenCV4 instead of opencv3 #272 也参考了这两个链接!
这里面要注意的是在Opencv4.5.5 中使用cv_bridge转换msgs 与 opencv图像需要将opencv版本换成自己的,我的是这样的:
最后成功的截图:
ROS这部分算是搞完了,虽然还有很多不理解,但是也算是圆满,接下来就是理解这玩意以及后续的应用!
查看opencv版本信息:pkg-config --cflags opencv
OPENCV_GENERATE_PKGCONFIG - pkg-config --modversion opencv4
2022年1月7更新:
我重新构建节点的时候报了个错误
我尝试了网上很多解决办法都不行,会报新的问题,最终解决方案:
发现有catkin文件夹,我把这个文件夹移到了前面的目录
也就是share和catkin在同级目录下:
其他都按照之前的处理就好,最终显示也是正常的。
202年1月7更新,重新搞了一遍,存一些中间文件: