ARKit – 如何检测sceneView中特定特征点的颜色?

Mar*_* Ma 5 augmented-reality swift arkit

我想获取场景视图中特定特征点处检测到的世界对象的颜色。例如,我在 处检测到一个特征点(x:10, y:10, z:10)

如何获得该位置object/的颜色?surface

ARG*_*Geo 2

目前,无法使用 ARKit 方法在特征点下获取真实世界对象的颜色(与您在许多合成应用程序中看到的方式相同)。ARKit 没有方法允许您将Alpha特征点乘以RGB视频流中相应像素的值。

\n\n

在此输入图像描述

\n\n

.showFeaturePointsARSCNDebugOptions是ARSCNView 的扩展调试选项。此选项仅允许您显示世界中检测到的 3D 特征点。

\n\n
@available(iOS 11.0, *)\npublic static let showFeaturePoints: SCNDebugOptions\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

但我确信您可以尝试将 CIFilter 应用于包含特征点的 ARKit 相机源。

\n
\n\n

场景中的特征点是黄色的,因此您可以使用色度键效果来提取 Alpha 通道。然后你需要将这个 Alpha 乘以来自相机的 RGB。这样你就会获得color-coded特征点。

\n\n

在此输入图像描述

\n\n

您也可以使用Core Image Compositing OperationsCIDifferenceBlendMode中的操作。您需要两个源 \xe2\x80\x93 ,一个包含特征点,另一个不包含特征点。然后你必须修改Difference运算的结果,并在乘法之前将其分配给Alpha通道。

\n