depth_to_organized_points — 3D range_image op

• 数据种类:depth → pointmap

• 调用: import fullseye as fs; fs.ledger.depth_to_organized_points(depth, fx=None, fy=None, cx=None, cy=None)(要直接调用实现,import range_image; range_image.depth_to_organized_points(depth, fx=None, fy=None, cx=None, cy=None);从台账取用则 ops3d.get("depth_to_organized_points"))

用法

organized 深度图 → 网格对齐的 3D 点 (H,W,3)。

指定 fx,fy 时做透视反投影 P=((u-cx)/fx*d, (v-cy)/fy*d, d)。未指定时为正交(P=(x,y,depth),网格间距 1)。

u 是列号 (0..W-1),v 是行号 (0..H-1)。fx、fy 是以像素为单位的焦距, cx、cy 是主点,省略时为图像中心 ((W-1)/2, (H-1)/2)。fx 与 fy 中只要有一个为 None 就进入正交模式,cx、cy 被忽略。正交模式下 x, y 就是像素坐标本身,因此要注意深度的单位(mm 等)与 x, y 的单位(像素) 混在一起。透视模式下 3 个分量都与深度单位相同。深度 0 或 NaN 会原样传播(0 的像素会聚集到 x=y=0 的原点),因此无效像素的排除由调用方负责。返回值为 float64 的 (H,W,3),第 3 轴为 (x, y, z),x 向右,y 向下,z 为纵深(图像坐标系)。没有输入校验,非 2-D 输入会在 d.shape 的展开处失败。normals_from_depth 在内部使用本函数的输出。

背景知识指南(该算子背后的物理与约定)

• blender_interop — 与 Blender 配合使用 —— 在 Blender 中建形、用 fullseye 测量(坐标轴、单位、真值数据的陷阱)

• depth_sensors — 深度传感器知识 —— 测距原理、实机数值、缺测的表现

参考(示例数据、文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

可运行的示例(实际调用该算子并已验证的样例)

• range_image — py -3.11 examples_3d/range_image.py

类型可衔接的下一个算子(可接受 pointmap 作为输入)

fuse_to_voxel · bump_normals_fbm

同类别(range_image)

normals_from_depth · occlusion_edges · bearing_angle_image


*Provenance: range_image.py — 3D 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.