iOS14 ARDepthData 的分辨率是多少?
iOS14 what is the resolution of ARDepthData?
我正在尝试可视化 ARSession
和 ARCamera
捕获的深度数据。我看到深度很好,除了平面物体(如显示器)的边缘,我希望在渲染平面和背景之间有更清晰的过渡。
我观察到的是物体边缘的“磨损”,深度值在此处发生显着变化。 (创建自由浮动线,如下图所示)。我想删除自由浮动的线条。
这让我问:
ARDepthData 的“真实”分辨率是多少(值的多少部分可以作为噪声安全丢弃)?
如何在使用 ARDepthData 时避免舍入错误?
open class ARDepthData : NSObject {
/* A pixel buffer that contains per-pixel depth data (in meters). */
unowned(unsafe) open var depthMap: CVPixelBuffer { get }
}
以下是我尝试裁剪值的方法,但这会扭曲图像其余部分的分辨率。
const float2 samplePoint = float2(x, y); //0.0 - 1.0 range
const float2 clippingMultiplier = float2(64, 64);
const float2 clippedTextureCoordinate = (floor(texCoord * clippingMultiplier)) / clippingMultiplier; //attempt to clip fractional components
// What are the appropriate sampling filter parameters to reduce the error like in the screenshot?
constexpr sampler depthSampler(mip_filter::nearest, mag_filter::nearest, min_filter::nearest);
const auto depth = depthMap.sample(depthSampler, clippedTextureCoordinate).r;
//depth is used to calculate position
- 预期:尖角矩形
- 观察到:多股漂浮在空气中,深度值发生变化。
这是我尝试从深度值中删除小数部分的尝试:
对于前置真实深度相机,AVDepthData 的最大深度分辨率为 w640 h480
。
ARDepthData 似乎具有类似的低分辨率:
depth: w256 h192
confidence: w256 h192
我正在尝试可视化 ARSession
和 ARCamera
捕获的深度数据。我看到深度很好,除了平面物体(如显示器)的边缘,我希望在渲染平面和背景之间有更清晰的过渡。
我观察到的是物体边缘的“磨损”,深度值在此处发生显着变化。 (创建自由浮动线,如下图所示)。我想删除自由浮动的线条。
这让我问:
ARDepthData 的“真实”分辨率是多少(值的多少部分可以作为噪声安全丢弃)?
如何在使用 ARDepthData 时避免舍入错误?
open class ARDepthData : NSObject {
/* A pixel buffer that contains per-pixel depth data (in meters). */
unowned(unsafe) open var depthMap: CVPixelBuffer { get }
}
以下是我尝试裁剪值的方法,但这会扭曲图像其余部分的分辨率。
const float2 samplePoint = float2(x, y); //0.0 - 1.0 range
const float2 clippingMultiplier = float2(64, 64);
const float2 clippedTextureCoordinate = (floor(texCoord * clippingMultiplier)) / clippingMultiplier; //attempt to clip fractional components
// What are the appropriate sampling filter parameters to reduce the error like in the screenshot?
constexpr sampler depthSampler(mip_filter::nearest, mag_filter::nearest, min_filter::nearest);
const auto depth = depthMap.sample(depthSampler, clippedTextureCoordinate).r;
//depth is used to calculate position
- 预期:尖角矩形
- 观察到:多股漂浮在空气中,深度值发生变化。
这是我尝试从深度值中删除小数部分的尝试:
对于前置真实深度相机,AVDepthData 的最大深度分辨率为 w640 h480
。
ARDepthData 似乎具有类似的低分辨率:
depth: w256 h192
confidence: w256 h192