Kinect Color Point to Depth/Camera Point

Я работаю над приложением Cinder и kinect v2, и в настоящее время я застрял на сопоставлении точки цвета с точкой глубины. Я искал в цветовой рамке определенную точку определенного цвета, поэтому у меня есть точки цветовой рамки x и y.

Я хотел бы получить глубину от этого, но, конечно, кадр глубины - это другое разрешение и точка обзора, поэтому вы не можете просто индексировать его.

Я не смог найти ни одного преобразователя для точки цвета в точку глубины или даже точки камеры. Есть ли простой способ сделать это, кроме проведения измерений самостоятельно?

Моя проблема похожа на эту: -kinec">Как получить координаты реального мира (x, y, z) из отдельного объекта с помощью Kinect, но мне не нужны настоящие координаты реального мира. Однако ответ там не полностью объясняет, что мне нужно.


person Pikmet    schedule 18.01.2015    source источник


Ответы (2)


Вы должны использовать CoordinateMapperClass. . В вашем случае:
используйте функцию

 public void MapColorFrameToDepthSpace (
         Array<UInt16>[] depthFrameData,
         out Array<DepthSpacePoint>[] depthSpacePoints
)
person JavaNullPointer    schedule 11.12.2015

Вы должны использовать CoordinateMapper датчика kinect. Ваше сопоставление связано с MapColorFrameToDepthFrame или пространством. Эта функция доступна на kinect v2 sdk.

После этого шага у вас будет 3 информации (Xview, Yview, Zworld) Yworld и Xworld, вы можете найти эти формулы

Yworld =  Zworld * Yview / focal_length 
Xworld = Zworld  * Xview / focal_length

и теперь вы знаете мировую координату любой точки изображения

Вы можете легко измерить расстояние между двумя точками.

Distance_of_p1_p2(mm) = Sqrt ( Square(p2.Xworld - p1.Xworld) +  Square(p2.Yworld - p1.Yworld) + Square(p2.Zworld - p1.Zworld)) 
person Mesut Yiğit    schedule 26.02.2016