0

私がやろうとしているのは、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);
}

ここでの「結果」は常に null です。サンプル->深度、サンプル->色だけを投影に渡すと、有効な画像が返されます。

ここで何が間違っていますか?

4

1 に答える 1

1

同じ問題を抱えている人のために:

私はAcquireAccessPXCImage::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、 to のパラメーターとして画像を使用しないでくださいPXCProjection

于 2015-09-07T17:51:39.757 に答える