ARKit - Как определить цвет определенной характерной точки в sceneView? - PullRequest
0 голосов
/ 28 октября 2018

Я хотел бы получить цвет обнаруженного объекта мира в определенной характерной точке в sceneView.Например, у меня обнаружена характерная точка в (x:10, y:10, z:10).

Как мне получить цвет object / surface в этой позиции?

1 Ответ

0 голосов
/ 28 октября 2018

В настоящее время невозможно получить цвет реального объекта под характерной точкой, используя методы ARKit (так же, как вы видели во многих приложениях для композитинга).Нет метода ARKit, позволяющего умножить Alpha характерной точки на RGB значение соответствующего пикселя в видеопотоке.

enter image description here

.showFeaturePoints - это расширенная опция отладки ARSCNDebugOptions для ARSCNView.Эта опция позволяет вам показывать обнаруженные трехмерные характерные точки в мире.

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

Но я уверен, что вы можете попробовать применить CIFilter к каналу ARKit содержит характерные точки.

Особые точки в вашей сцене желтые, поэтому вы можете использовать Эффект хроматической клавиши для извлечения альфа-канала.Затем вам нужно умножить эту альфу на RGB с камеры.Таким образом, вы получите color-coded характерных точек.

enter image description here

В качестве альтернативы вы можете использовать CIDifferenceBlendMode op из Core Image Compositing Operations .Вам нужно два источника - один с характерными точками, а другой без них.Затем вы должны изменить этот результат операции Difference и назначить его альфа-каналу перед умножением.

...