SLAM十四讲CH8代码
在SLAM十四讲的代码编译过程中direct_method.cpp
和optical_flow.cpp
有CV_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";
您可能感兴趣的文章
阅读排行
本栏相关
- 04-02qt用法小结2021_11_19
- 04-02Visual Studio C++ 默认 UTF-8 编码及 *.edi
- 04-02【C++】extern "C"详
- 04-02<五>关于类的各类成
- 04-02<六>指向类成员的指
- 04-02<四>构造函数初始化
- 04-02<三>对象的浅拷贝和
- 04-02<二>掌握构造函数和
- 04-02[C++]
- 04-02SLAM十四讲CH8代码
随机阅读
- 01-10C#中split用法实例总结
- 01-10SublimeText编译C开发环境设置
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 04-02jquery与jsp,用jquery
- 01-11ajax实现页面的局部加载
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 01-10delphi制作wav文件的方法
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文