SLAM14讲(第二版),ch5中opencv安装和运行所遇到的问题

opencv的安装

官网下载地址https://opencv.org/releases.,选用版本3.4.11
安装教程参考官网文档https://docs.opencv.org/3.4.9/d7/d9f/tutorial_linux_install.html
其中的第三步虽然没有写optional,但可以跳过,这步是安装其他模块的,诸如surf算子,sift算子,需要以后可以再补。
SLAM14讲(第二版),ch5中opencv安装和运行所遇到的问题

程序运行

示例程序为" /home/veryneo/Workspace/slambook2-gcw/ch5/imageBasics"文件夹中的
imageBasics.cpp和undistortImage.cpp
一开始打开imageBasics文件夹里的CMakeLists.txt,就4句话,少了好几句话,根本没法编译
SLAM14讲(第二版),ch5中opencv安装和运行所遇到的问题
后来发现在ch5文件夹下也有CMakeLists.txt,打开一看
SLAM14讲(第二版),ch5中opencv安装和运行所遇到的问题
里面把ch5的三个文件夹作为子工程放了进去,之前ch3也是这样的,不过当时没注意,还是每个文件夹分开编译的,书里也没有提到过这点,所以忽视了这个CMakeLists文件,编译这个文件,可以同时得到三个文件夹的可执行程序。如下图所见,分别截取了命令行界面和文件管理器的界面(展示内容一样)
SLAM14讲(第二版),ch5中opencv安装和运行所遇到的问题
SLAM14讲(第二版),ch5中opencv安装和运行所遇到的问题
点进去build文件夹
SLAM14讲(第二版),ch5中opencv安装和运行所遇到的问题
这时候想要运行ch5/build/imageBasics中的imageBasics可执行文件
命令行输入(ch5为当前目录)build/imageBasics/imageBasics imageBasics/ubuntu.png即可
imageBasics/ubuntu.png为输入的参数
SLAM14讲(第二版),ch5中opencv安装和运行所遇到的问题
想要分开编译也行,将ch5/imageBasics/CMakeLists补完整即可
SLAM14讲(第二版),ch5中opencv安装和运行所遇到的问题

注意,我在find_package(OpenCV REQUIRED)这里犯了一个错,OpenCV是要注意大小写的,不然是搜不到" /usr/local/share/OpenCV/OpenCVconfig.cmake"文件,这个文件会告诉编译器头文件,库文件地址,从而实现链接。