RealSense Projection :: CreateColorImageMappedToDepth возвращает значение Null, если к одному из внутренних параметров был получен доступ через AcquireAccess

я пытаюсь изменить изображение глубины, полученное с помощью PXCSManager :: QuerySample (), а затем сопоставить его с цветным изображением, полученным таким же образом.

Вот что я делаю:

void SampleProcessor::CaptureFrame(PXCSenseManager* pxcsManager, const PXCCapture::Sample* sample, char lastCapturedCharacter) {

defaultFilter(sample->depth, pxcsManager->QueryCaptureManager()->QueryDevice()->QueryDepthLowConfidenceValue());

auto result = _projection->CreateColorImageMappedToDepth(timage, sample->color);
}

void SampleProcessor::defaultFilter(PXCImage * toFilter, const pxcF32 & defaultValue) {
auto imageData = PXCImage::ImageData(); //Todo: think about removing duplication with save function. Alternative to python decorators?

if (toFilter->AcquireAccess(PXCImage::ACCESS_READ_WRITE, PXCImage::PIXEL_FORMAT_DEPTH_F32, &imageData) < PXC_STATUS_NO_ERROR) {
return;
}

filterDepth(imageData, toFilter->QueryInfo(), [](pxcF32) { return true; }, defaultValue);

toFilter->ReleaseAccess(&imageData);
}

И «результат» здесь всегда нулевой. Если я перейду к проекции просто образец-> глубина-образец-> цвет, то он вернет правильное изображение.

Что я здесь не так делаю?

0

Решение

Так что для тех, у кого такие же проблемы:

Я звонил AcquireAccess с PXCImage::ACCESS_READ_WRITE (хотя то же самое верно для PXCImage::ACCESS_WRITE) а также PXCImage::PIXEL_FORMAT_DEPTH_F32,

Это приводило к тому, что внутренний формат пикселей преобразовывался из стандартного в PIXEL_FORMAT_DEPTH_F32,

И кажется, что PXCProjection не работает с изображениями, имеющими этот формат пикселей (хотя это не указано в документации, или, по крайней мере, я не могу найти упоминания об этом). А также CreateColorImageMappedToDepth просто возвращает nullptr при вызове с изображением в этом формате пикселей. Что действительно информативно = /.

PXCProjection::QueryUVMap в той же ситуации возвращается STATUS_PARAM_UNSUPPORTED что немного более информативно и привело меня к экспериментам с форматом пикселей.

Итак, подведем итог: вы не должны использовать изображения с PIXEL_FORMAT_DEPTH_F32 в качестве параметров для PXCProjection,

1

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


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