SLAM十四讲CH8代码
  gHDXpIBcSYxF 2023年11月02日 66 0
C++

在SLAM十四讲的代码编译过程中direct_method.cppoptical_flow.cppCV_GRAY2BGR语句的报错
这是因为CV_GRAY2BGR是opencv2的用法,而slambook2的的cmakelist.txt中opencv的库用的是opencv4,
因此要将CV_GRAY2BGR改为cv::COLOR_BGR2GRAY,这是用来将彩色图转换灰度图的,之后就可以顺利编译
但是编译之后,在运行代码的时候会出现英文报错,意思是输入的图片通道数无效,(核心已转储)
这是因为在slambook2的ch8中提供的图片本身就是单通道的灰度图,不需要进行转换,因此只需要将相应的代码
注释,再修改一下就好了。修改如下:
两个cpp文件中的有关彩色图转换的代码都需要修改,否则都会报错。
// cv::cvtColor(img2, img2_CV, cv::COLOR_BGR2GRAY);注释掉这句
img2.copyTo(img2_CV); 直接将输入的图像拷贝给img2

另外图片路径问题,由于再编译的时候我们会习惯mkdir一个build文件夹,编译到这个文件夹里,因此再运行时
可以将direct_method和optical_flow复制到ch8文件里,然后运行,或者在代码里将图片路径的代码修改一下
例如:string left_file = "./left.png";改为string left_file = "../left.png";

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  8Tw5Riv1mGFK   2024年05月01日   80   0   0 C++
  BYaHC1OPAeY4   2024年05月08日   58   0   0 C++
  yZdUbUDB8h5t   2024年05月05日   44   0   0 C++
  oXKBKZoQY2lx   2024年05月17日   59   0   0 C++
gHDXpIBcSYxF
作者其他文章 更多