Точный расчет невозможен, потому что сцена объемна. Если сцена имела плоские детали, вы могли бы получить карту, сопоставить карту и фотографию и получить функцию.
Однако вы все равно можете получить карту и попытаться сопоставить ее вручную, предполагая, что дрон двигался вертикально. Ваш процесс должен выглядеть примерно так:
- найти позицию фотографа на карте
- выберите две точки на каждой горизонтальной линии и найдите совпадающие пары точек на карте (да, это еще человеческая работа)
- зная, масштаб объекта дает вам расстояние
- высота беспилотника, прицел дронов на каждом объекте (он же расстояние) и проекция прицел дронов образуют 90-градусный треугольник. Вы знаете проекцию вида дронов (из карты) и знаете расстояние от дрона до объекта (вы получаете его из соотношения между соотношениями расстояний между подобранными точками). Вы получите высоту, если будете использовать теорему Пифагора
- учитывая высоту, вы можете рассчитать угол как тригонометрическую функцию: угол = арктан (высота / расстояние) - он будет градуироваться от 90 до 0 градусов для восходящего вертолета. Расчет высоты для каждой горизонтальной линии дает вам набор пар <угол, высота>, которые вы можете интерполировать
Это подсказка о том, как вы это сделаете, и она не очень подробная.
Использование цели «рыбий глаз» значительно затрудняет ее формализацию. Все еще можно предположить, если вы держите свои совпадающие пары близко к центральной вертикали фотографии.