环境:ubuntu20.04 双系统
决定像书上一样使用KDevelop来运行代码。(好处是可以直接运行现有的程序)
第一步 先将ch5导入KDevelop编译
点击工程,点击打开导入工程,然后选择你要导入的工程就可以了。点击构建(这里会报错,暂时不要管)然后点击运行里选择配置启动 然后添加ch5里所有所有能够运行的文件
然后点击运行选择当前启动配置选择一个可以运行的ch5文件,然后点击调试旁的执行文件,观查报的错误然后改正。
如 joinMap:
错误与ch4里遇到的一样:ch4
解决后编译发现报/usr/local/include/sigslot/signal.hpp:109:79: error: ‘decay_t’ is not a member of ‘std’; did you mean ‘decay’?
错误
可以在将CMakeLists中set(CMAKE_CXX_FLAGS “-std=c++11”)注释掉即可
#set(CMAKE_CXX_FLAGS “-std=c++11”)
然后发现报请在有pose.txt的目录下运行此程序的错误
直接将pose.txt文件放到build 里的rgbd文件里面,同时,将color和depth文件一起放入(防止不出现图像)
然后运行joinMap
第二步安装opencv
1.首先,打开终端并输入以下命令,安装 OpenCV 依赖项:
sudo apt update
sudo apt install -y build-essential cmake git pkg-config
sudo apt install -y libjpeg-dev libtiff-dev libjasper-dev libpng-dev
sudo apt install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt install -y libxvidcore-dev libx264-dev
sudo apt install -y libgtk-3-dev
sudo apt install -y libatlas-base-dev gfortran
sudo apt install -y python3-dev
注意在运行第三行命令的时候可能会遇到E: 无法定位软件包 libjasper-dev
的问题,解决办法:
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt upgrade
sudo apt install libjasper1 libjasper-dev
2.使用 git 下载 OpenCV 源代码:(国内镜像)
git clone https://gitcode.net/opencv/opencv.git
3.进入 OpenCV 目录并创建一个 build 目录
cd opencv
mkdir build
cd build
4.使用 cmake 命令进行编译
cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D INSTALL_C_EXAMPLES=OFF \ -D OPENCV_GENERATE_PKGCONFIG=ON \ -D PYTHON_EXECUTABLE=/usr/bin/python3.8 \ -D BUILD_EXAMPLES=ON ..
5.编译和安装 OpenCV
make -j4
sudo make install
sudo ldconfig
6.验证安装
python3 -c "import cv2; print(cv2.__version__)"
如果验证安装步骤输出了 OpenCV 的版本号,则说明安装成功。
第三步运行stereoVision文件
遇到问题:terminate called after throwing an instance of ‘cv::Exception
我直接把要加载的两张图片left.png,right.png复制到可执行文件的目录下(build里的stereo文件里)
然后点击运行
第四步运行imageBasics文件
运行undistortlmage文件可以直接运行出来
运行imageBasics文件时候会出现错误:
这里提示的是代码的问题,我们进入代码文件,把图片的路径给他。
string image_file = "./ubuntu.png";
然后在下面更改名
image = cv::imread(image_file);
点击运行,会产生图片。