ReconstructFull API
ReconstructFull 是最简单易用的全流程重建接口,适合快速启动项目和新手用户。它会自动处理图像元数据提取、空三计算和三维重建的完整流程。
🎯 接口特点
- ✅ 自动化程度高:自动从图像 EXIF 读取 GPS 和相机信息
- ✅ 配置简单:最少只需要提供图像路径
- ✅ 一步到位:从图像直接生成最终成果
- ✅ 智能优化:自动选择最佳处理参数
接口调用
命令行调用
reconstruct_full_engine(.exe) --reconstruct_type 0 --task_json config_task.json
参数说明
reconstruct_type: 接口 Type,固定为0(表示 ReconstructFull)task_json: 参数文件路径
📋 Task Json文件参数详解
1 必需参数
| 参数名 | 类型 | 说明 | 示例值 |
|---|---|---|---|
working_dir | string | 工作目录路径 | "C:/Projects/MyProject" |
gdal_folder | string | GDAL 数据目录 | "C:/MipMap/SDK/data" |
image_meta_data | array | 图像列表 | 格式说明查看image_meta_data |
input_image_type | int | 图像类型 | 1=RGB, 2=多光谱, 3=红外 |
resolution_level | int | 1=高, 2=中, 3=低 | 1 |
coordinate_system | object | 输入图像EXIF内嵌的POS(GPS)所属坐标系,无人机图像常内嵌WGS84坐标系,若无内嵌POS如手机、全景相机图像则为Local坐标系,详见coordinate_system | 常见坐标系示例 |
gdal_folder是SDK包里自带的data或gdal_data目录,目录下有众多数据库文件,目录可以移动位置,指定到对应的路径即可,必须为英文路径
2 可选参数 - 成果输出控制【必须设置其中一个成果】
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
generate_obj | bool | false | 生成 OBJ 格式模型 |
generate_ply | bool | false | 生成 PLY 格式模型 |
generate_osgb | bool | false | 生成 OSGB 格式(倾斜摄影) |
generate_3d_tiles | bool | false | 生成 3D Tiles(Cesium) |
generate_las | bool | false | 生成 LAS 点云 |
generate_pc_ply | bool | false | 生成点云 PLY |
generate_pc_osgb | bool | false | 生成点云 OSGB (LOD) |
generate_pc_pnts | bool | false | 生成点云 PNTS (3D Tiles) |
generate_gs_ply* | bool | false | 生成 PLY 格式高斯泼溅成果 |
generate_gs_sog | bool | false | 生成 SOG 格式,体积压缩后的高斯泼溅成果 |
generate_gs_splat_sog_tiles | bool | false | 生成 SOG Tiles 格式,适用于大规模渲染的高斯泼溅成果 |
generate_geotiff | bool | false | 生成正射影像 |
generate_tile_2D | bool | false | 生成 2D 瓦片 |
generate_2D_from_3D_model | bool | false | 从 3D 模型生成正射 |
*[重要] Windwos系统生成高斯泼溅成果需要下载高斯插件,下载地址:高斯插件,下载后解压并将所有 dll 格式文件存放在 reconstruct_full_engine 同级目录
3 可选参数 - 成果坐标系 [坐标系字段详细含义见下方]
| 参数名 | 类型 | 说明 |
|---|---|---|
coordinate_system_3d | object | 输出 3D 成果坐标系,如果不设置,则输出Local或LocalENU坐标系 |
coordinate_system_2d | object | 输出 2D 成果坐标系,如果不设置,则输出Local或LocalENU坐标系 |
4 高级参数
更多高级参数请查看 高级参数
📝 数据结构详解
coordinate_system 对象
| 字段名 | 类型 | 说明 | 示例值 |
|---|---|---|---|
type | int | 坐标系类型:0=LocalENU,1=Local,2=Geographic,3=Projected,4=ECEF | 2 |
type_name | string | 坐标系类型名称(可选,辅助说明) | "Geographic" |
label | string | 坐标系名称(可选) | "WGS 84" |
epsg_code | int | EPSG 代码(地理/投影/地心坐标系需填写) | 4326 |
wkt | string | WKT 字符串(可选,替代 epsg_code) | "..." |
origin_point | array[3] | 原点WGS84坐标 [经度, 纬度, 高程](仅 type=0 LocalENU 时需要) | [114.12, 22.12, 0] |
offset | array[3] | 坐标系原点偏移(可选),投影系设置偏移值可避免大数精度损失导致的模型浏览闪烁 | [0, 0, 0] |
常见的坐标系示例
{
"type": 2, // 0=LocalENU,1=Local,2=Geographic,3=Projected
"type_name": "Geographic",
"label": "WGS 84", // 坐标系名称
"epsg_code": 4326 // EPSG 代码
}
{
"type": 3, // 0=LocalENU,1=Local,2=Geographic,3=Projected
"type_name": "Projected",
"label": "WGS 84 / UTM zone 50N", // 坐标系名称
"epsg_code": 32650, // EPSG 代码
"offset": [
269431.5374728,
3364907.7329131,
90.337
]
}
{
"type": 2, // 0=LocalENU,1=Local,2=Geographic,3=Projected
"type_name": "Geographic",
"label": "CGCS2000", // 坐标系名称
"epsg_code": 4490 // EPSG 代码
}
{
"type": 2, // 0=LocalENU,1=Local,2=Geographic,3=Projected
"type_name": "Projected",
"label": "CGCS2000 / 3-degree Gauss-Kruger CM 114E", // 坐标系名称
"epsg_code": 4547, // EPSG 代码
"offset": [
269431.5374728,
3364907.7329131,
90.337
]
}
图像元数据(Image Metadata)
| 字段名 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
id | int | 是 | 图像唯一ID |
path | string | 是 | 图像绝对路径 |
group | string | 否 | 相机组名称(多相机系统时使用) |
示例:
{
"id": 1, // 唯一标识符
"path": "C:/Images/DJI_0001.JPG", // 图像路径
"group": "camera_1" // 相机分组【可选】
}
相机分组(group)参数
用于多相机系统,将不同相机的图像分组处理:
"image_meta_data": [
{"id": 1, "path": "nadir/IMG_001.jpg", "group": "nadir"},
{"id": 2, "path": "nadir/IMG_002.jpg", "group": "nadir"},
{"id": 3, "path": "oblique_f/IMG_001.jpg", "group": "oblique_forward"},
{"id": 4, "path": "oblique_b/IMG_001.jpg", "group": "oblique_backward"},
{"id": 5, "path": "oblique_l/IMG_001.jpg", "group": "oblique_left"},
{"id": 6, "path": "oblique_r/IMG_001.jpg", "group": "oblique_right"}
]
常见分组场景:
- 五目倾斜相机:nadir, oblique_forward, oblique_backward, oblique_left, oblique_right
- 双相机系统:wide_angle, telephoto
- 多机协同:drone_1, drone_2, drone_3
- 多时相:morning, afternoon
📝 配置示例
最简配置
{
"working_dir": "C:/Projects/QuickStart",
"gdal_folder": "C:/MipMap/SDK/data",
"input_image_type": 1,
"resolution_level": 2,
"coordinate_system": {
"type": 2,
"label": "WGS 84",
"epsg_code": 4326
},
"image_meta_data": [
{"id": 1, "path": "C:/Images/DJI_0001.JPG"},
{"id": 2, "path": "C:/Images/DJI_0002.JPG"},
{"id": 3, "path": "C:/Images/DJI_0003.JPG"},
{"id": 4, "path": "C:/Images/DJI_0004.JPG"},
{"id": 5, "path": "C:/Images/DJI_0005.JPG"}
],
"generate_osgb": true,
"generate_3d_tiles": true,
"generate_geotiff": true
}
多相机组配置示例
{
"working_dir": "D:/Projects/MultiCamera",
"gdal_folder": "D:/MipMap/SDK/data",
"input_image_type": 1,
"resolution_level": 1,
"coordinate_system": {
"type": 2,
"label": "WGS 84",
"epsg_code": 4326
},
// 多相机图像分组
"image_meta_data": [
// 下视相机
{"id": 1, "path": "nadir/IMG_001.jpg", "group": "nadir"},
{"id": 2, "path": "nadir/IMG_002.jpg", "group": "nadir"},
// 前视倾斜相机
{"id": 3, "path": "forward/IMG_001.jpg", "group": "oblique_f"},
{"id": 4, "path": "forward/IMG_002.jpg", "group": "oblique_f"},
// 更多相机组...
],
"generate_osgb": true,
"generate_3d_tiles": true,
"generate_geotiff": true
}
错误处理
接口返回整数错误码:
0: 成功非0: 各种错误情况
详见错误码。
🎯 使用建议
适用场景
- ✅ 快速原型和测试
- ✅ 标准航拍项目
- ✅ 自动化批处理
- ✅ 新手入门学习
ReconstructFull 是开始使用 MipMapEngine SDK 的最佳选择。随着经验增长,您可以探索其他接口以获得更多控制。