OpenCV Realsense 16-битная глубина изображения

У меня есть камера realsense, и я пытаюсь прочитать изображение глубиной 16 бит.
У меня проблема — когда я создаю прямой opencv мат с 16-битными значениями, я вижу только черное изображение. Когда я конвертирую 16-битное изображение в 8-битное с масштабом 255/1000, я получаю нормальное изображение, но я не хочу потерять эту информацию.

depthImage->AcquireAccess(PXCImage::ACCESS_READ, PXCImage::PIXEL_FORMAT_DEPTH, &depthImgData);

pxcBYTE* cpixels = depthImgData.planes[0];

Mat r_depth(frameSize, CV_16UC1, cpixels);

Вот мой код, где я конвертирую изображение.

Подскажите, пожалуйста, в чем причина такого поведения и как получить 16-битное изображение?

0

Решение

какое устройство RealSense вы используете? R200, LR200, SR300 или D410?

Предложите использовать библиотеку / API librealsense, которая поддерживается на GitHub.
Настройте формат глубины на RS2_FORMAT_Z16. И я использую код ниже, чтобы получить данные глубины 16 бит.

auto frame = queue.wait_for_frame();

Mat depth16(Size(640, 480), CV_16U, (void*)frame.get_data(), Mat::AUTO_STEP);
0

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

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

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