提交
This commit is contained in:
@@ -20,6 +20,22 @@
|
||||
|
||||
多个深度点映射到同一彩色像素时,保留最近点(小 Z 值覆盖大 Z 值)。
|
||||
|
||||
### 前向映射的间隙问题与 3×3 Splat 修复
|
||||
|
||||
前向映射(forward scatter)存在固有缺陷:每个深度像素只写入 color 平面的**一个像素**。由于深度相机与彩色相机的视角差异,经外参变换 + 透视投影后,相邻深度像素在 color 平面上的落点会出现跳跃,中间留下空洞,输出图像呈现**离散小方块**而非连续深度面。
|
||||
|
||||
**修复方案:3×3 邻域扩散(splat)**
|
||||
|
||||
对每个投影后的深度像素,同时写入以其为中心的 3×3 邻域,而不是单个像素。遍历顺序仍保持**远→近**,因此当多个 splat 重叠时,Z 值较小(较近)的深度最后写入并覆盖,遮挡关系依然正确:
|
||||
|
||||
```
|
||||
for dv in -1, 0, +1:
|
||||
for du in -1, 0, +1:
|
||||
aligned[v + dv, u + du] = z # 远→近顺序,近处覆盖远处
|
||||
```
|
||||
|
||||
如果局部仍有残留空洞(如深度图有效范围边缘),可将 3×3 扩大为 5×5(`range(-2, 3)`)。
|
||||
|
||||
---
|
||||
|
||||
## 环境依赖
|
||||
@@ -124,6 +140,18 @@ python d2c_batch.py --convert
|
||||
|
||||
使用已有的 `camera_params.json`,直接输入深度图目录开始转换。适合相机参数已获取、需要反复处理不同数据集的场景。
|
||||
|
||||
### 关闭 3×3 Splat 填充
|
||||
|
||||
```bash
|
||||
python d2c_batch.py --no-splat
|
||||
```
|
||||
|
||||
默认开启 splat(前向映射后用 3×3 邻域扩散填补间隙)。加 `--no-splat` 可关闭,每个深度像素仅写入 color 平面的单个像素,适合对原始投影结果做对比分析。可与其他参数组合使用:
|
||||
|
||||
```bash
|
||||
python d2c_batch.py --convert --no-splat
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 交互示例
|
||||
|
||||
Reference in New Issue
Block a user