跳到主要内容

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_dirstring工作目录路径"C:/Projects/MyProject"
gdal_folderstringGDAL 数据目录"C:/MipMap/SDK/data"
image_meta_dataarray图像列表格式说明查看image_meta_data
input_image_typeint图像类型1=RGB, 2=多光谱, 3=红外
resolution_levelint1=高, 2=中, 3=低1
coordinate_systemobject输入图像EXIF内嵌的POS(GPS)所属坐标系,无人机图像常内嵌WGS84坐标系,若无内嵌POS如手机、全景相机图像则为Local坐标系,详见coordinate_system常见坐标系示例

gdal_folder是SDK包里自带的datagdal_data目录,目录下有众多数据库文件,目录可以移动位置,指定到对应的路径即可,必须为英文路径

2 可选参数 - 成果输出控制【必须设置其中一个成果】

参数名类型默认值说明
generate_objboolfalse生成 OBJ 格式模型
generate_plyboolfalse生成 PLY 格式模型
generate_osgbboolfalse生成 OSGB 格式(倾斜摄影)
generate_3d_tilesboolfalse生成 3D Tiles(Cesium)
generate_lasboolfalse生成 LAS 点云
generate_pc_plyboolfalse生成点云 PLY
generate_pc_osgbboolfalse生成点云 OSGB (LOD)
generate_pc_pntsboolfalse生成点云 PNTS (3D Tiles)
generate_gs_ply*boolfalse生成 PLY 格式高斯泼溅成果
generate_gs_sogboolfalse生成 SOG 格式,体积压缩后的高斯泼溅成果
generate_gs_splat_sog_tilesboolfalse生成 SOG Tiles 格式,适用于大规模渲染的高斯泼溅成果
generate_geotiffboolfalse生成正射影像
generate_tile_2Dboolfalse生成 2D 瓦片
generate_2D_from_3D_modelboolfalse从 3D 模型生成正射

*[重要] Windwos系统生成高斯泼溅成果需要下载高斯插件,下载地址:高斯插件,下载后解压并将所有 dll 格式文件存放在 reconstruct_full_engine 同级目录

3 可选参数 - 成果坐标系 [坐标系字段详细含义见下方]

参数名类型说明
coordinate_system_3dobject输出 3D 成果坐标系,如果不设置,则输出Local或LocalENU坐标系
coordinate_system_2dobject输出 2D 成果坐标系,如果不设置,则输出Local或LocalENU坐标系

4 高级参数

更多高级参数请查看 高级参数

📝 数据结构详解

coordinate_system 对象

字段名类型说明示例值
typeint坐标系类型:0=LocalENU,1=Local,2=Geographic,3=Projected,4=ECEF2
type_namestring坐标系类型名称(可选,辅助说明)"Geographic"
labelstring坐标系名称(可选)"WGS 84"
epsg_codeintEPSG 代码(地理/投影/地心坐标系需填写)4326
wktstringWKT 字符串(可选,替代 epsg_code)"..."
origin_pointarray[3]原点WGS84坐标 [经度, 纬度, 高程](仅 type=0 LocalENU 时需要)[114.12, 22.12, 0]
offsetarray[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)

字段名类型是否必需说明
idint图像唯一ID
pathstring图像绝对路径
groupstring相机组名称(多相机系统时使用)

示例:

{
"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 的最佳选择。随着经验增长,您可以探索其他接口以获得更多控制。