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

ARKit – How to detect the colour of specific feature point in sceneView?

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

处检测到一个特征点

如何获取object/surface这个位置的颜色?

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

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

@available(iOS 11.0, *)
public static let showFeaturePoints: SCNDebugOptions

But I'm sure that you can try to apply a CIFilter to ARKit camera feed containing feature points.

场景中的特征点是黄色的,因此您可以使用Chroma Key Effect提取Alpha通道。然后你需要将这个 Alpha 乘以来自相机的 RGB。所以你会得到color-coded个特征点。

您也可以使用 Core Image Compositing Operations 中的 CIDifferenceBlendMode 操作。你需要两个源——一个有特征点,另一个没有。然后你必须修改这个Difference op的结果并在乘法之前将其分配给Alpha通道。