首页 > 解决方案 > ARKit – 如何检测场景视图中特定特征点的颜色?

问题描述

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

如何在这个位置获得object/的颜色surface

标签: swiftaugmented-realityarkit

解决方案


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

在此处输入图像描述

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

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

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

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

在此处输入图像描述

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


推荐阅读