OpenCV, проекция на 3d поверхность

В настоящее время я работаю над школьным проектом с "автономным" автомобилем, мне нужно спроецировать изображение с моей камеры (которая расположена на автомобиле и слегка наклонена) на 2d поверхность, представляющую дорогу (я предполагаю, что дорога идеально ровно), учитывая поле зрения, положение и угол наклона камеры относительно поверхности, как бы я проецировал ее в OpenCV? Что мне нужно, так это чтобы проекция выглядела так, как будто я снимал дорогу сверху под углом 90°. Заранее спасибо за помощь...

0 ответов

Используйте функцию opencv, чтобы сделать это

C++: void reprojectImageTo3D(InputArray disparity, OutputArray _3dImage, InputArray Q, bool handleMissingValues=false, int ddepth=-1 )

Матрица Q является обратной матрицей проекции K, которая содержит центр камеры и fx fy

Вы можете искусственно создать несоответствие, скажем, карту градиента, чтобы представить глубину плоской поверхности.

Затем передайте Q, disparty и output3Dmat, которые хотите

Программа даст вам то, что вы хотите

Другие вопросы по тегам