error: ‘cv::SIFT’ has not been declared, ‘USAC_ACCURATE’ is not a member of ‘cv’的参考解决方法

写在前面

自己的测试环境:
Ubuntu20.04
OpenCV 4.5.4 (源码安装的,默认安装路径在 /usr/local/下)

一、问题描述

编译调用 OpenCV 的程序时,遇到如下报错:

error: ‘cv::SIFT’ has not been declared
   30 |     detector_ = cv::SIFT::create();
‘USAC_ACCURATE’ is not a member of ‘cv’
  239 |       t_vec, true, 500, 2.0, 0.999, inliers_pnp, cv::USAC_ACCURATE);

二、解决方法

出现这个报错的原因首先是 OpenCV 版本太低导致的。因此自己从 OpenCV4.2.0升级到了OpenCV 4.5.4 ,但是依旧出现这个报错,经过查找资料,如下解决方法:
首先需要将OpenCV版本升级到 OpenCV 4.5.0 以上,然后进行如下修改:

sudo gedit /opt/ros/noetic/share/cv_bridge/cmake/cv_bridgeConfig.cmake

将文件中的94-96行:

if(NOT "include;/usr/include/opencv4 " STREQUAL " ")
  set(cv_bridge_INCLUDE_DIRS "")
  set(_include_dirs "include;/usr/include/opencv4")

修改为:

if(NOT "include;/usr/local/include/opencv4 " STREQUAL " ")
  set(cv_bridge_INCLUDE_DIRS "")
  set(_include_dirs "include;/usr/local/include/opencv4")

然后再次进行编译,应该可以编译通过。

参考链接

[1] YukunXia. SuperPoint-Stereo-Visual-Odometry/tree/test_two_batches/src/odml_visual_odometry/README.md. https://github.com/YukunXia/SuperPoint-Stereo-Visual-Odometry/blob/test_two_batches/src/odml_visual_odometry/README.md, 2021-11-25/2024-07-09.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值