Выравнивание изображения Kinect V2 RGB и карты глубины с помощью Java
Я хотел бы знать, если есть способ выровнять изображение RGB и данные глубины Kinect V2, используя данные о цвете в качестве отправной точки, используя Java, я на самом деле использую Java для Kinect в качестве оболочки, и это, кажется, не дай мне возможность для этого. Есть ли способ сделать это?
1 ответ
Наконец, обойдя его, воспользовавшись ответом @Spektre, я поэкспериментировал с формулами, чтобы все заработало, но мне это кажется нормальным. Исправлено для моих нужд, это дает:
int alignx= (((x-512)<<8)/241)+Width; int aligny= (((y-424)<<8)/240)+25+Height;
Он работает нормально, пока Kinect находится на том же уровне, что и объект, на который вы хотите нацелиться (то есть: не используется высота).
Я не совсем согласен с ответом Алекса Аквье, я чувствую, что это неправильный подход. Я столкнулся с той же проблемой, и я знаю, что делаю это на 8 месяцев позже, но в интересах других, кто пришел сюда в поисках решения, я сейчас представляю его здесь:
Дело в том, что вам не нужно вручную выравнивать RGB и кадры глубины. Уже есть класс, который может сделать это для вас, "IMultiSourceFrameReader". Используя это как источник, вы можете быть уверены, что создаете облако точек правильным образом.
Теперь это нормально, если вы просто хотите использовать каналы. Но если где-то внизу вашего кода, если вы собираетесь использовать какую-то систему координат и если вам понадобятся координаты RGB и пикселей глубины, то вы ожидаете, что они будут одинаковыми, верно? Потому что вы используете выровненные координаты в конце концов, верно? Но вы не выровняете координаты, пока не будете использовать класс ICoordinateMapper. Этот класс также выровняет все координаты от всех различных датчиков, RGB и Infra, и вернет выровненные координаты.
Пожалуйста, обратитесь к этому источнику, это был мой переход к источнику для Kinect V2 в течение долгого времени.