OpenCV, проекция на 3d поверхность - PullRequest
0 голосов
/ 15 января 2019

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

1 Ответ

0 голосов
/ 25 мая 2019

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

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

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

enter image description here

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

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

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

...