提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
参考:https://blog.csdn.net/qq_39003069/article/details/109383593?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control
https://blog.csdn.net/any_howe/article/details/83106940
下载链接:http://download.qt.io/archive/qt/
下载链接:https://developer.nvidia.com/cuda-10.1-download-archive-base?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exenetwork
选择本地local离线安装,起初下载的network在安装时下载包失败。
(最好下载离线安装[local],在线下载安装[network])下载完成后,打开安装程序:
1. cuda_10.1.105_418.96_win10.exe
自定义安装路径 D:\Dependent\cuda10.1
2. NVIDIA 软件许可协议
3. 自定义(C)高级
但下面在选择驱动程序时全部选择了
选择安装位置,此处采用了默认,装到了C盘
5. 安装程序完成
6.安装完成,会自动添加环境变量,可以自行查看:
下载链接:https://sourceforge.net/projects/boost/files/boost-binaries/
下载具体版本根据vs版本和位数来选择,14.0对应VC2015,14.1对应VC2017,14.2对应VC2019,因此我选择boost_1_70_0-msvc-14.2-64.exe下载即可。
开始下载的boost_1_64_0-msvc-14.1-64.exe,点击bootstrap.bat时闪退,并没有生成b2.exe找不到 cl ,尝试了多挣解决办法未解决。
后来重新下载了boost1_72,成功生成了b2.exe,运行b2.exe(时间较长),是在生成链接库,在stage-lib文件夹下。但后面添加环境变量时,仍然添加的是自带的 lib64-msvc-14.1
在系统变量中添加,不是Path里
先安装其余的,如cuda,QT,BOOST,在安装这个,会用到前面的。
下载链接:https://github.com/CGAL/cgal/releases
下载.exe版本安装
1.打开cmake-gui,进入cgal所在的文件夹(如下图)。注意,cgal本身是没有build文件夹的,cmake编译过程中会自动给你创建一个。
2. 路径设置好之后,点击configure,然后在里面选择对应的vs版本,点击finish,cmake开始自动编译,编译成后显示configure done。(其中有一项CMAKE_INSTALL_PREFIX,是编译完成后文件的安装位置。)再点击generate,显示generate done。此时会在刚刚创建的build文件夹里生成cgal.sln文件
若遇到以下问题:
Cmake编译CGAL报错(1):Boost_DIR或Boost_INCLUDE_DIR找不到,只需在CMake里修改Boost_INCLUDE_DIR路径,如下图所示:
只需要将路径修改为你的boost的安装目录就可以了
在cgal编译INSTALL时报错,debug和release均报错:

# Number of images: 2, mean observations per image: 2
1 0.851773 0.0165051 0.503764 -0.142941 -0.737434 1.02973 3.74354 1 P1180141.JPG
2362.39 248.498 58396 1784.7 268.254 59027 1784.7 268.254 -1
2 0.851773 0.0165051 0.503764 -0.142941 -0.737434 1.02973 3.74354 1 P1180142.JPG
1190.83 663.957 23056 1258.77 640.354 59070
c. 稀疏三维点云中三维空间点的信息 points3D.txt 格式如下
# 3D point list with one line of data per point:
# POINT3D_ID, X, Y, Z, R, G, B, ERROR, TRACK[] as (IMAGE_ID, POINT2D_IDX)
# Number of points: 3, mean track length: 3.3334
63390 1.67241 0.292931 0.609726 115 121 122 1.33927 16 6542 15 7345 6 6714 14 7227
63376 2.01848 0.108877 -0.0260841 102 209 250 1.73449 16 6519 15 7322 14 7212 8 3991
63371 1.71102 0.28566 0.53475 245 251 249 0.612829 118 4140 117 4473
如果需要进一步 rectify, 可以把参数输入到 OpenCV 的 stereoRectify() 函数中,之后 initUndistortRectifyMap() , 最后使用 remap() 函数进行重映射 从而得到矫正的结果。
利用前面的步骤求得的相机参数进行稠密重建,由 PatchMatch 求解单视角对应的深度图和法向图,同时根据需要对深度图和法相图进行滤波。
$ mkdir $DATASET_PATH/dense
$ colmap image_undistorter \
--image_path $DATASET_PATH/images \
--input_path $DATASET_PATH/sparse/0 \
--output_path $DATASET_PATH/dense \
--output_type COLMAP \
--max_image_size 3840
$ colmap patch_match_stereo \
--workspace_path $DATASET_PATH/dense \
--workspace_format COLMAP \
--PatchMatchStereo.max_image_size 3840 \
--PatchMatchStereo.window_radius 9 \
--PatchMatchStereo.geom_consistency true \
--PatchMatchStereo.filter_min_ncc 0.07
对于纹理不是特别丰富的场景,建议增加 windows_radius 以及降低 filter_min_ncc 来提升深度值求解的准确度。
$ colmap stereo_fusion \
--workspace_path $DATASET_PATH/dense \
--workspace_format COLMAP \
--input_type geometric \
--output_path $DATASET_PATH/dense/fused.ply
$ colmap poisson_mesher \
--input_path $DATASET_PATH/dense/fused.ply \
--output_path $DATASET_PATH/dense/meshed-poisson.ply
$ colmap delaunay_mesher \
--input_path $DATASET_PATH/dense \
--output_path $DATASET_PATH/dense/meshed-delaunay.ply
或
--output_path $DATASET_PATH/dense/meshed-poisson.ply