Выравнивание изображения Kinect V2 RGB и карты глубины с помощью Java - PullRequest
0 голосов
/ 29 мая 2018

Хотелось бы узнать, есть ли способ выровнять RGB-изображение и данные глубины Kinect V2, используя данные о цвете в качестве отправной точки, используя Java, на самом деле я использую java для Kinect как обертка, и это, кажется, не дает мне возможности для этого.Есть ли способ сделать это?

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

Я не совсем согласен с ответом Алекса Аквье, я чувствую, что это неправильный подход.Я столкнулся с той же проблемой, и я знаю, что я делаю это на 8 месяцев позже, но в интересах других, кто пришел сюда в поисках решения, я сейчас представляю его здесь:

Дело в том, что вы ненеобходимо вручную выровнять RGB и кадры глубины.Уже есть класс, который может сделать это для вас, "IMultiSourceFrameReader".Используя это как источник, вы можете быть уверены, что создаете облако точек правильным образом.

Теперь это нормально, если вы просто хотите использовать каналы.Но если где-то внизу вашего кода, если вы собираетесь использовать какую-то систему координат и если вам понадобятся координаты RGB и пикселей глубины, то вы ожидаете, что они будут одинаковыми, верно?Потому что вы используете выровненные координаты в конце концов, верно?Но вы не выровняете координаты, пока не будете использовать класс ICoordinateMapper.Этот класс выполнит выравнивание всех координат от всех различных датчиков, RGB и Infra, и вернет выровненные координаты.

Пожалуйста, обратитесь к этому источнику , это был мойдолгое время переходил на Kinect V2.

0 голосов
/ 31 мая 2018
  • Наконец-то, обойдя его, используя ответ @Spektre здесь , я поэкспериментировал с формулами, чтобы все заработало, но мне это кажется нормальным.Исправленный для моих нужд, он дает:

            int alignx= (((x-512)<<8)/241)+Width;
            int aligny= (((y-424)<<8)/240)+25+Height;
    

Он отлично работает, пока Kinect находится на том же уровне, что и объект, на который вы хотите нацелиться (то есть: не используется высота).

...