Как рассчитать трехмерную координату из картинки с заданным значением Z - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть фотография самолета с 4 известными точками на нем.У меня есть внутренние и внешние параметры камеры, а также (с помощью функции Родригеса) положение камеры.Плоскость определяется как мой уровень земли (Z = 0).Если я выберу точку на своем изображении, есть ли простой способ вычислить координаты, где эта точка будет на моей плоскости?

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Когда вы смотрите на opencv в модуле calib3d.Вы увидите это уравнение:

https://docs.opencv.org/master/d9/d0c/group__calib3d.html

Пожалуйста, прокрутите вниз по ссылке и посмотрите уравнения преобразования перспективы

Из того, что вы говорите, вы объявляете уровень земли плоскости (Z = 0).Вы также знаете параметр внутренней камеры (точка фокусировки в пикселях, центр изображения) и параметр внешней камеры (вращение и перемещение).и вы хотите получить доступ к некоторым пикселям в вашем изображении (не так ли?), а оттуда вы хотите оценить, где оно находится на плоскости ??

Вы можете использовать функцию triangulatePoints () в модуле calib3D opencv.вам нужно как минимум 2 жестких изображения.

Но ваш случай кажется мне маловероятным, если вы попытаетесь обнаружить 4 известные точки, вам сначала нужно будет определить мировую координату этой плоскости, обычно вы определяете верхний левыйугол плоскости как исходный (0,0,0), тогда вы будете знать положение этих 4 известных точек в мировой координате путем ручного расчета.когда вы обнаруживаете это в программе opencv, она дает вам пиксельные координаты этих 4 точек.тогда, как правило, то, что люди рассчитывают вычислить, - это поза (вращение и перевод).

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

0 голосов
/ 06 февраля 2019

Не так много можно пометить как «легкий» при работе с 3D-рендерингом.

На ваш вопрос я бы посмотрел на трассировка лучей .Я не буду пытаться объяснить это, так как большинство сайтов лучше объяснят, чем я смогу.

...