栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

CVBridge 与高版本OPENCV冲突解决

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CVBridge 与高版本OPENCV冲突解决

CVBridge 与高版本OPENCV冲突解决
  • 一级目录
    • 二级目录
      • 三级目录
    • 下载cvbridge
      • 编译
      • 编译问题
    • 使用

一级目录 二级目录 三级目录 下载cvbridge
mkdir -p cv_bridge_ws/src
cd cv_bridge_ws/src
git clone https://gitee.com/bingobinlw/cv_bridge  //此链接适用于18.04
cd ..
编译
  • 然后将自己安装的opencv编译生成的build文件路径加入到克隆下来的这个包里的CMakeLists.txt,修改添加下列语句(详见此文件目录下的CMakeLists.txt文件)
set(OpenCV_DIR "your-path/opencv-x.x.x/build")
catkin_make
编译问题

https://github.com/ros-perception/vision_opencv/issues/272

高赞回答

  1. Add set (CMAKE_CXX_STANDARD 11) to your top level cmake

  2. In cv_bridge/src CMakeLists.txt line 35 change to if (OpenCV_VERSION_MAJOR VERSION_EQUAL 4)

  3. In cv_bridge/src/module_opencv3.cpp change signature of two functions

     `UMatData* allocate(int dims0, const int* sizes, int type, void* data, size_t* step, int flags, UMatUsageFlags usageFlags) const`

    TO

     `UMatData* allocate(int dims0, const int* sizes, int type, void* data, size_t* step, AccessFlag flags, UMatUsageFlags usageFlags) const`
 `bool allocate(UMatData* u, int accessFlags, UMatUsageFlags usageFlags) const`

TO

 `bool allocate(UMatData* u, AccessFlag accessFlags, UMatUsageFlags usageFlags) const`
  • 然后以可以重新编译
使用

最后在所需要使用cv_bridge的ros包里的CMakeLists.txt文件中添加opencv路径以及cv_bridge路径

set(OpenCV_DIR "your-path/opencv-x.x.x/build")
set(cv_bridge_DIR your-path/cv_bridge_ws/devel/share/cv_bridge/cmake)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/862591.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号