Asus Zenfone AR соотносит глубину и цветность изображения

Здравствуйте! Я использую изображения глубины и цвета из Google Tango, чтобы загрузить изображение в Meshlab. Eсть связанный вопрос, где цель состоит в том, чтобы найти цвет каждой точки в Tango Point Cloud. Однако я бы хотел пойти другим путем. Как найти соответствующую глубину для каждого пикселя цветного изображения?

Я увеличил глубину изображения и сохранил результат в TangoDepthBuffer. Я использовал OpenGL readPixels () метод, чтобы получить цветное изображение и сохранить значения RGB в массиве пикселей []. Затем я сопоставляю значения x, y, z со значениями RGB, используя следующий код:

index_rgb = 0;
index_pixels = 0;
for(int i = 0; i < color_camera_width; i++)
{
for(int j = 0; j < color_camera_height; j++)
{
red     [index_rgb] = pixels[color_camera_width * color_camera_height * 3 - 3 - index_pixels];
green   [index_rgb] = pixels[color_camera_width * color_camera_height * 3 - 2 - index_pixels];
blue    [index_rgb] = pixels[color_camera_width * color_camera_height * 3 - 1 - index_pixels];

z[index_rgb] = render_point_cloud_buffer->depths[j * color_camera_width + i];
x[index_rgb] = (double) (i - color_camera_width/2);
y[index_rgb] = (double) (j - color_camera_height/2);

x[index_rgb] = (x[index_rgb] / color_camera_width) *  depth_camera_horizontal_fov;
y[index_rgb] = (y[index_rgb] / color_camera_height) * depth_camera_vertical_fov;

x[index_rgb] = z[index_rgb] * tan(x[index_rgb]);
y[index_rgb] = z[index_rgb] * tan(y[index_rgb]);

index_rgb++;
index_pixels += 3;
}
}

Я ожидаю, что результат выровняет глубину и цвет изображения. Однако когда я загружаю результат в Meshlab, пиксели глубины смещаются вниз и влево от соответствующих цветных пикселей. Способ, которым происходит этот сдвиг, зависит от глубины. Тем не менее, я не могу найти глубину, где нет сдвига.

Как вы находите преобразование, необходимое, чтобы это исправить? Будет ли это работать для любой глубины? В качестве альтернативы, как вы находите глубину в каждом конкретном цветном пикселе?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]