最近在编译colmap和openmvs,发现它们都需要好多依赖库,虽然都编译成功了,但是并不知道这些依赖库是干什么的,在这里简单mark一下~
首先是colmap的依赖库:
- Boost库:为C++标准库提供扩展功能(参考博客:C++ Boost库分类总结)
- CGAL库:计算几何算法的库(参考博客:CGAL功能介绍)
- Eigen库:C++线性运算模板库,可完成矩阵、向量、数值解运算(参考博客:Eigen库的简单使用)
- Ceres库:非线性优化库,解决有/无约束条件下的非线性最小二乘问题
- Suit-sparse库:稀疏矩阵算法
- Freeimage库:跨平台图像处理库,支持BMP/JPEG/GIF/PNG/TIFF等图像格式
- Gflags库:处理命令行参数
- Glog库:实现应用级的日志记录
- Glew库:OpenGL的扩展库,能够自动识别不同厂商显卡所支持的全部OpenGL高级函数接口
接下来是openmvs的依赖库:
- Boost库、CGAL库、Eigen库和Ceres库:同上,跟colmap一样
- OpenCV库:强大的开源库,用于图像处理、分析、以及机器视觉等方面
- VCG库:定义了网格(mesh)数据结构,实现网格算法(网格修补、平滑、变形、曲率计算和泊松采样等等)
- GLFW库:创建OpenGL上下文和操作窗口,并处理用户输入