编码深度和置信度
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
深度图会序列化为一组 XMP 属性。在序列化过程中,深度图首先会转换为传统图片格式。编码流水线包含三个步骤(见图 2):
- 从输入格式(例如浮点值或 int32 值)转换为整数灰度图片格式,例如字节(8 位)或字(16 位)。
- 使用标准图片编解码器(例如 JPEG 或 PNG)进行压缩。
- 序列化为 base64 字符串 XMP 属性。
流水线可以是无损的,也可以是有损的,具体取决于原始深度图的位数和用于存储它的位数,例如 JPEG 编解码器为 8 位,PNG 编解码器为 8 位或 16 位。
目前支持两种不同的格式:RangeLinear 和 RangeInverse。如果深度图在编码时会损失精度(例如从浮点数转换为 8 位),建议使用 RangeInverse 格式。它会为近深度值分配更多位,为远深度值分配更少位,这与 GPU 卡中 z-buffer 的工作方式类似。
如果深度图附有置信度图,则置信度图也会使用与深度图类似的流水线转换为传统图片格式。置信度地图始终使用 RangeLinear 格式进行编码,置信度范围假定为 [0, 1]。
RangeLinear
假设 d 是像素的深度,near 和 far 是考虑的最小和最大深度值。深度值首先会归一化到 [0, 1] 范围,如下所示:
然后量化为 8 位或 16 位,如
反之,给定量化后的深度 d
8bit,可以恢复深度 d,如下所示:
RangeInverse
假设 d 是像素的深度,near 和 far 是考虑的最小和最大深度值。深度值首先会归一化到 [0, 1] 范围,如下所示:
然后量化为 8 位或 16 位,如
反之,给定归一化深度 d
n,可以恢复深度 d,如下所示:
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-26。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-07-26。"],[],[]]