【已解决】error: ‘CV_GRAY2BGR’ was not declared in this scope

这是运行高翔 slambook2 代码出现的问题,有两种方法解决。

error: ‘CV_GRAY2BGR’ was not declared in this scope

/home/diyu/slambook2/ch8/optical_flow.cpp: In function ‘int main(int, char**)’:
/home/diyu/slambook2/ch8/optical_flow.cpp:145:37: error: ‘CV_GRAY2BGR’ was not declared in this scope
145 | cv::cvtColor(img2, img2_single, CV_GRAY2BGR);
| ^~~~~~~~~~~
/home/diyu/slambook2/ch8/direct_method.cpp: In function ‘void DirectPoseEstimationSingleLayer(const cv::Mat&, const cv::Mat&, const VecVector2d&, std::vector<double, std::allocator >, Sophus::SE3d&)’:
/home/diyu/slambook2/ch8/direct_method.cpp:206:35: error: ‘CV_GRAY2BGR’ was not declared in this scope
206 | cv::cvtColor(img2, img2_show, CV_GRAY2BGR);
| ^~~~~~~~~~~
make[2]: *** [CMakeFiles/optical_flow.dir/build.make:63:CMakeFiles/optical_flow.dir/optical_flow.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:105:CMakeFiles/optical_flow.dir/all] 错误 2
make[1]: *** 正在等待未完成的任务…
make[2]: *** [CMakeFiles/direct_method.dir/build.make:63:CMakeFiles/direct_method.dir/direct_method.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:78:CMakeFiles/direct_method.dir/all] 错误 2
make: *** [Makefile:84:all] 错误 2

这个实验由于代码使用的是opencv2,而cmkelists.txt文件中是opencv4

error: ‘CV_GRAY2BGR’ was not declared in this scope
这是opencv2的用法,现在opencv3和4是COLOR_GARY2BGR

因此有两种选择

  1. 要么将代码中opencv2的用法改成opencv3或者4的用法。即将代码中的CV_GRAY2BGR改成COLOR_GRAY2BGR,这里不确定是不是只需修改这个就可以。

  2. 要么将cmakelists文件中的opencv4改成opencv2。

这里选择第二种做法,修改成opencv2

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值