В SDK отсутствует метод, который сопоставляет один ColorSpacePoint
с DepthSpace
(или CameraSpace
). И не может быть! Чтобы получить правильное отображение, вам нужны не только пиксельные координаты, но и глубина этого конкретного пикселя. И в RGB-изображении у вас нет этой информации.
Для получения правильного отображения из цветового пространства на глубину или пространства камеры сначала необходимо отобразить полное изображение глубины на цветное изображение, чтобы получить значения глубины для каждого цветного пикселя. Тогда было бы легко отобразить один пиксель от цвета к глубине. Но к тому времени у вас есть полное отображение.
Итак, если вам действительно нужно идти в этом направлении, вам нужно отобразить все изображение, используя CoordinateMapper.MapColorFrameToCameraSpace
.
С другой стороны, когда вы находитесь в глубине или пространстве камеры, у вас уже есть вся необходимая информация для каждого пикселя, поэтому легко сопоставить отдельные пиксели. Вот почему существуют эти методы (например, CoordinateMapper.MapDepthPointToCameraSpace
).
Edit:
Я надеюсь, что немного рисунок может помочь объяснить, почему глубина необходима, чтобы получить правильное соответствие между цветом и глубиной пространства:
Один из цветной камеры пиксели смотрят на синий объект (сплошная синяя стрелка). Этот пиксель отображается на определенный пиксель камеры глубины (сплошная красная стрелка).
Если объект не был там, тот же пиксель цветной камеры будет смотреть на фон (пунктирная синяя стрелка), который будет отображаться на другом пикселе в глубинной камере (пунктирная красная стрелка - в другом направлении стрелок означает разные пиксели).
Но цветная камера не знает, смотрит ли она на объект или на задний план. Он просто знает, какой цвет есть. Не так далеко от этого цвета. Вот почему цветная камера сама по себе не может решить, какой правильный пиксель в глубинной камере.
Глубинная камера, с другой стороны, знает расстояние на каждом пикселе, поэтому оно может определить соответствующий пиксель в цветной камере.
Покажите нам, что вы попробовали. – Krythic
Это может быть полезно https://github.com/wieden-kennedy/Cinder-Kinect2/blob/master/src/Kinect2.cpp#L223 –
Спасибо Рафаф, мне нужна противоположная операция ... – Pol