Я получаю несколько кадров глубины из сети и интегрируюсь в реконструкцию, используя модифицированный пример Kinect Fusion C ++:
// smoothing
col_reconst->SmoothDepthFloatFrame(m_pDepthFloatImage, m_pDepthFloatImage, 3, m_fMaxDepthThreshold);
col_reconst->SmoothDepthFloatFrame(m_pDepthFloatImage2, m_pDepthFloatImage2, 3, m_fMaxDepthThreshold);
col_reconst->SmoothDepthFloatFrame(m_pDepthFloatImage3, m_pDepthFloatImage3, 3, m_fMaxDepthThreshold);
hr = m_pVolume->IntegrateFrame(m_pDepthFloatImage, m_cMaxIntegrationWeight, &m_worldToCameraTransform);
hr2 = m_pVolume->IntegrateFrame(m_pDepthFloatImage2, m_cMaxIntegrationWeight, &m_worldToCameraTransform2);
hr3 = m_pVolume->IntegrateFrame(m_pDepthFloatImage3, m_cMaxIntegrationWeight, &m_worldToCameraTransform4);
Я установил матрицы m_worldToCameraTransform
для каждого вручную, используя полосы прокрутки для углов поворота и расстояния.
Проблема состоит в следующем:
Обратите внимание, что первый и второй снимки экрана показывают, что Kinect, похоже, не учитывает углы обзора (перспектива).
Этот эффект может быть уменьшен после очень точного позиционирования, но лучшие результаты, которых я мог достичь, все еще плохи:
Я думал об экспорте сетки и использовании некоторого сглаживания сетки, но, может быть, я просто делаю что-то не так с API? Могу ли я сделать так, чтобы разные детали не затеняли друг друга, например, при незначительном несоответствии?
Спасибо!
Задача ещё не решена.
Других решений пока нет …