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

时间:2018-10-28 17:19:28

标签: swift augmented-reality arkit

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

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

1 个答案:

答案 0 :(得分:1)

目前,无法使用ARKit方法在特征点下获得真实对象的颜色(就像您在许多合成应用程序中看到的一样)。没有ARKit方法可让您将特征点的Alpha与视频流中相应像素的RGB值相乘。

enter image description here

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

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

但是我确定您可以尝试apply a CIFilter to ARKit camera feed包含特征点。

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

enter image description here

您也可以使用Core Image Compositing Operations中的CIDifferenceBlendMode op。您需要两个来源-一个带有特征点,另一个没有它们。然后,您必须修改“差异”运算的结果并将其分配到乘法之前的Alpha通道。