Обрезать область рук от Глубина потока-Kinect 1

Я исследовал и пробовал много методов, чтобы решить проблему. Я получил координаты руки из данных скелета. Используя эти координаты, я хочу вырезать область из данных глубины и отображать ее при изменении местоположения руки. Я уже преобразовал rgb и глубину потока в растровое изображение. Я работаю над формой Windows, так как у меня мало времени. Как я могу сопоставить координаты скелета с координатами данных глубины? А также, как просто отфильтровать каждый пиксель кадра глубины, который находится дальше определенного значения? Я знаю, что Kinect предоставляет карту глубины, но несколько слов о том, как получить к ней доступ и заставить ее работать с окнами, было бы полезно.

1 ответ

Вам нужно использовать класс Coordinatemapper, чтобы сопоставить скелетное соединение с 2D-координатами. В SDK определены два класса для цветных и глубинных изображений: ColorSpacePoint и DepthSpacePoint. Обе структуры содержат значения x и y в пикселях, это то, что вы хотите. Чтобы сделать преобразование, вы можете попробовать код следующим образом:

ColorSpacePoint colorspacepoint=m_pCoordinatemapper->MapCameraPointToColorSpace(point);

Чтобы получить доступ к данным кадра, вы можете попробовать метод AccessUnderlyingBuffer() интерфейса IDepthFrame.

Надеюсь это поможет.

Другие вопросы по тегам