我想在SceneView的特定特征点上获取检测到的世界对象的颜色。例如,我在(x:10, y:10, z:10)
处检测到一个特征点。
如何在此位置获得object
/ surface
的颜色?
答案 0 :(得分:1)
目前,无法使用ARKit方法在特征点下获得真实对象的颜色(就像您在许多合成应用程序中看到的一样)。没有ARKit方法可让您将特征点的Alpha
与视频流中相应像素的RGB
值相乘。
.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
个特征点。
您也可以使用Core Image Compositing Operations中的CIDifferenceBlendMode
op。您需要两个来源-一个带有特征点,另一个没有它们。然后,您必须修改“差异”运算的结果并将其分配到乘法之前的Alpha通道。