提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
**
一、运行ch8的例程代码
1. 编译例程代码前的修改
修改optical_flow.cpp和direct_method.cpp文件中图片的路径
(1) 修改光流法图像的路径
string file 1 ="../LK1.png"; // 第一张图片路径
string file 2 ="../LK2.png"; // 第二张图片的路径
(2) 修改直接法图像的路径
string left file ="../left.png";
string disparity file ="../disparity.png";
boost::format fmt others("../%06d.png"); // 其他图片
(3) 修改CMakeLists.txt
每个target_link_libraries后面加上fmt,用于连接fmt库,如下:
2. 编译例程
(1) 在slambook2/ch8/目录下,创建build文件:
mkdir build
cd build
(2) 编译源码
cmake ..
make
注意:make编译时可能会出错,后面有解决的方法
(3) 运行例程
光流法的例程:
./optical_flow
直接法的例程:
./direct_method
3. 编译报错
(1) 报错一:使用cmake … 编译时出现
报错信息如下:
Make Error at CMakeLists.txt:38(find package):By not providing
“FindG20.cmake” in CMAKE_MODULE_PATH this project has asked CMake to
find a package configuration file provided by “G2o”, but CMake did not
find one. Could not find a package configuratton file provided by
“g20” with any of the following names: G2oConfig.cmakeg
g2o-config.cmake
解决:
找到findg2o.cmake文件的位置,一般在g2o安装包中的"cmake_modules"文件夹中,将整个文件夹复制到相应工程的下面,与build文件夹在同一目录,然后编译可以正常通过。
(2) 报错二:make编译时出现
报错信息如下:
原因:
可能opencv3.2.0版本太低导致
解决:
安装更高的版本,如:opencv4.5.2(如果是ubuntu20的自带高版本的opencv,不会出现此问题)
(3) 报错三:make编译时出现
error: ’ CV GRAY2BGR’ was not declared in this scope
cv::cvtcolor(img2,img2 show,CV GRAY2BGR);
原因:
这个实验由于代码使用的是opencv2,而cmkelists.txt文件中是opencv4(error: ‘CV_GRAY2BGR’ was not declared in this scope)这是opencv2的用法,现在opencv3和4是COLOR_GARY2BG
解决办法:
1) 在光流的代码optical_flow.cpp文件中:
需要将CV_GRAY2BGR,更新为COLOR_GRAY2BGR。
2) 在direct_method.cpp文件中
CV_GRAY2BGR 替换为 cv::COLOR_GRAY2BGR,
最后重新编译ch8的代码,终端输入如下代码,即看到运行结果:
./optical_flow
./direct_method