基于多光源图像的光度立体视觉三维重建系统
项目介绍
本项目实现了一个基于光度立体视觉原理的三维重建系统。系统通过分析同一静态物体在多个已知方向点光源照射下拍摄的灰度图像,计算出物体表面的三维法向量场,并通过积分重建出物体的高度图与三维几何模型。该方法适用于表面材质均匀(朗伯反射)的物体,能够有效还原其宏观几何形状与微观表面细节。
功能特性
- 自动光源方向估计:支持通过参考球图像自动标定未知的光源方向。
- 高精度法向量计算:利用线性最小二乘法,稳健求解每个像素点的表面法向量。
- 高度图重建:采用基于泊松方程的全局积分算法,将法向量场转化为连续的高度图。
- 反射率分离:可同时计算出物体表面的反照率(反射率)图,分离几何与材质信息。
- 丰富的可视化与输出:提供法向量可视化、高度图渲染、3D网格显示,并支持导出STL/OBJ等标准三维格式。
使用方法
- 准备输入数据:收集一组(至少3幅,推荐8-12幅)同一固定相机拍摄的物体灰度图像,每张图像对应一个不同的光源方向。
- 配置光源信息:
-
已知光源方向:将每个光源的方向向量(三维向量)整理为文本文件或矩阵。
-
未知光源方向:提供一张在相同光源设置下拍摄的参考球(如镀铬球)图像,系统将自动估计光源方向。
- 运行主程序:根据提示或修改配置文件,设置图像路径、光源信息、掩模路径(可选)等参数,然后运行主程序。
- 获取结果:程序运行后,将在指定输出目录生成法向量图、高度图、反射率图以及三维网格模型文件,并显示可视化结果。
系统要求
- 操作系统:Windows / Linux / macOS
- 软件环境:MATLAB (推荐 R2018b 或更高版本)
- 依赖工具箱:Image Processing Toolbox, Optimization Toolbox (用于高级求解)
- 硬件建议:足够内存以处理高分辨率图像(如4GB以上)
文件说明
主程序文件作为系统的总控入口与执行流程中枢,其核心功能包括:统筹调用所有数据处理模块,依次执行图像与参数读取、光源方向估计(若需要)、表面法向量求解、高度积分计算、反射率图生成等关键步骤;管理整个重建流程的逻辑顺序与参数传递;最终负责组织并输出全部重建结果,包括法向量场、高度图、三维网格以及相关的可视化图形。