VINS编译, opencv多版本的原因导致的问题

1. 通用问题

问题一

编译时报错 error: ‘CV_GRAY2RGB’ was not declared in this scope 等
解决方法

在报错文件上添加头文件 #include <opencv2/imgproc/imgproc_c.h>
单独遇到CV_AA的报错时,也可以将 CV_AA 改为 cv::LINE_AA

问题二

编译时报错 error: ‘CV_CALIB_CB_ADAPTIVE_THRESH’ was not declared in this scope 、error: ‘CV_CALIB_CB_NORMALIZE_IMAGE’ was not declared in this scope、error: ‘CV_CALIB_CB_FILTER_QUADS’ was not declared in this scope 和 error: ‘CV_CALIB_CB_FAST_CHECK’ was not declared in this scope

解决方法

将CV_CALIB_CB_ADAPTIVE_THRESH、CV_CALIB_CB_NORMALIZE_IMAGE、CV_CALIB_CB_FILTER_QUADS和CV_CALIB_CB_FAST_CHECK修改为 cv::CALIB_CB_ADAPTIVE_THRESH 、 cv::CALIB_CB_NORMALIZE_IMAGE 、cv::CALIB_CB_FILTER_QUADS 和cv::CALIB_CB_FAST_CHECK

问题三

编译时报错 error: ‘CV_RGB2GRAY’ was not declared in this scope
解决方法

在报错文件上添加头文件 #include<opencv2/imgproc/types_c.h>

问题四

编译时遇到报错 error: ‘CV_FONT_HERSHEY_SIMPLEX’ was not declared in this scope

解决方法

将报错文件上的 CV_FONT_HERSHEY_SIMPLEX 参数改为 cv::FONT_HERSHEY_SIMPLEX
问题五

‘CV_CALIB_CB_ADAPTIVE_THRESH’ was not declared in this scope

解决方法

试一下重新下一个cv_bridge,下载编译安装,在VINS_Mono代码的CMakeLists.txt中改变cv_bridge的路径即可,即加一句

set(cv_bridge_DIR “/home/xxx/codes/catkin_ws/devel/share/cv_bridge/cmake”)#写入自己的路径
上面摘自https://zhuanlan.zhihu.com/p/432167383

2. 多版本opencv导致的问题

我的电脑安装了opencv4.2 opencv3.2和opencv3.5, 如果只用find_package(OpenCV REQUIRED), 我这边找到的是OpenCV3, 而且vins找到的OpenCV4, 导致出现如下问题
在这里插入图片描述
运行的时候会出现core问题, gdb可以发现:
在这里插入图片描述
可以发现camera模块和vins模块实际上用的opencv版本不一样, vins模块链接的是opencv4, 但是camera链接的是opencv3. 改camera模块的CMakeLists中opencv的版本让两个模块的opencv版本一致, 则可以解决这个问题.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/233868.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【软件测试学习】—软件测试阶段(三)

【软件测试学习】—软件测试阶段&#xff08;三&#xff09; 我 | 在这里 &#x1f469;‍&#x1f9b0;&#x1f469;‍&#x1f9b0; 读书 | 长沙 ⭐计算机科学与技术 ⭐ 本科 【2024届】 &#x1f383;&#x1f383; 爱好 | 旅游、跑步、网易云、美食、摄影 &#x1f396;️…

服务器安装JDK17 版本显示JDK8

服务器之前安装的是JDK8&#xff0c;后面升级JDK17后&#xff0c;发现执行 java -vsrsion 显示的是此时我的环境变量已经换成了JAVA17的路径 输入&#xff1a; vim /etc/profile 解决办法&#xff1a; 1.更新自己环境变量 bash export JAVA_HOME/usr/local/jdk-17.0.7 …

ASO优化之多久更新一次应用程序

应用程序更新代表对移动应用程序的形式或功能的更改&#xff0c;包括新的用户界面、功能和错误修复。需要注意大多数更新都需要应用程序市场的批准流程。 1、更新应用程序的原因。 更新应用程序的主要原因有错误修复、功能发布、设计更改、差评和竞争。即使应用程序本身没有发…

ArkTS-时间滑动选择器弹窗

时间滑动选择器弹窗 以24小时的时间区间创建时间滑动选择器&#xff0c;展示在弹窗上。 示例 useMilitaryTime: 展示时间是否为24小时制&#xff0c;默认为12小时制。默认值&#xff1a;false Entry Component struct TimePickerDialogExample {private selectTime: Date new …

Nginx实现(动静分离)

动静分离应该是听的次数较多的性能优化方案&#xff0c;那先思考一个问题&#xff1a;「「为什么需要做动静分离呢&#xff1f;它带来的好处是什么&#xff1f;」」 其实这个问题也并不难回答&#xff0c;当你搞懂了网站的本质后&#xff0c;自然就理解了动静分离的重要性。先来…

Java微服务框架 HP-SOA 1.0.5 — 完整支持 Spring Cloud 和 Dubbo

HP-SOA 功能完备&#xff0c;简单易用&#xff0c;高度可扩展的Java微服务框架。 项目主页 : https://www.oschina.net/p/hp-soa下载地址 : https://github.com/ldcsaa/hp-soa开发文档 : https://gitee.com/ldcsaa/hp-soa/blob/master/README.mdQQ Group: 44636872, 66390394…

世微 AP8105 DC-DC 升压芯片 低功耗 PFM 干电池手持设备驱动IC

此外&#xff0c;AP8105具有易于使用的引脚配置&#xff0c;使其适用于各种干电池手持设备。 总的来说&#xff0c;AP8105是一款适用于干电池手持设备的理想驱动IC&#xff0c;它能够提供高效的电源管理&#xff0c;通过降低功耗延长电池寿命&#xff0c;并适用于各种便携式设备…

重载、重写、重定义的辨析

C重载、重写、重定义 重载、重写、重定义对比一、重载&#xff08;overload&#xff09;二、重写 / 覆盖&#xff08;override&#xff09;三、重定义 / 隐藏&#xff08;redefining&#xff09; * 为什么在虚函数中不能使用 static 关键字&#xff1f;动态绑定&#xff08;Dyn…

​在做接口测试的时候,如果接口还没有开发好,你这边应该怎么去介入测试?

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

@Autowired注解获取对象为null

问题再现 兄弟们&#xff0c;看见了吗&#xff1f;这里我Autowired进来的forkliftService 居然为null 且我SysForkliftServiceImpl上面是加了Service注解的 分析原因 主要原因就是因为该类继承了一个第三方框架SimpleChannelInboundHandler&#xff0c;在执行的过程中&#…

深入理解Zookeeper系列-1.初识Zoookeeper

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码、Kafka原理、分布式技术原理&#x1f525;如果感觉博主的文章还不错的话&#xff…

直播间搭建设备

直播间搭建对设备的要求因直播类型和直播内容而异&#xff0c;但以下是一些常见的直播设备要求: 1.摄像头∶高清、稳定、画面流畅的摄像头是直播的必备设备。对于大部分直播来说&#xff0c;选择一个质量较好的网络摄像头或手机摄像头即可。但对于需要更高清晰度或专业级别的直…