I came across this post: How is this changing vertical perspective effect achieved?

Let's say those pictures have been taken by a drone, how would you calculate the positions (latitude, longitude), height and camera angle for where each photo will be shot?

  • \$\begingroup\$ Seems to me that is has nothing to do with photography. What you are looking for is probably in the field of image processing and called image registration : en.wikipedia.org/wiki/Image_registration \$\endgroup\$
    – Olivier
    Dec 29, 2016 at 10:06
  • 2
    \$\begingroup\$ I think it's a fair photography question about shooting technique. Have added that tag. \$\endgroup\$ Dec 30, 2016 at 0:15

2 Answers 2


While calculation should be possible, I would rather recommend trial and error to begin. Start with your drone filming as it ascends. Then take screenshots from still-frames from the video. Do your stitching and see whether your image looks good to you. If so, make a note where in your video clip you took the screenshots. If your drone ascends slowly at a constant rate, then you can calculate its height from where you took your still frames: say it rose for 60 seconds and your first shots is taken at the 5 seconds mark in the video, your next at 10 seconds, your next at 20 seconds, your fourth at 60 seconds. Then your shots were taken at 5/60ths, 10/60ths, 20/60ths and 60/60ths of the way up.

  • \$\begingroup\$ Very good idea, but I would really like to find some calculation based solution. It's not just at which time the pictures should be taken, but also how the path of the drone should be at all. I'd say the flightpath has to be a logarithmic curve. \$\endgroup\$
    – gasparuff
    Dec 30, 2016 at 17:09
  • \$\begingroup\$ @gasparuff you are introducing very many variables if you suggest that the drone was not moving vertically. \$\endgroup\$ Jan 29, 2017 at 3:19

The exact calculation is impossible because the scene is volumetric. If the scene had flat details you could get a map and match the map and the photograph and get the function.

However you can still get the map and try to match it manually suggesting that the drone moved vertically. Your process should be something like:

  • find the photographer's position on the map
  • pick two points on every horizontal line and find matching pairs of points on the map (yes this is human work yet)
  • knowing the scale of the object gives you distance
  • the drone's height, the drones sight on every object (aka the distance) and the projection of drones sight form a 90 degree triangle. You know the projection of drones sight (from the map) and you know the distance from drone to the object (you get it from the ratio between the matched points distance ratio). You will get the height if you use Pifagor's theorem
  • given the height you can calculate the angle as a trigonometric function: angle = arctan ( height / distance ) - it will graduate from 90 deg to 0 deg for a rising copter. Calculating height for each horizontal line gives you a set of pairs < angle, height > which you can interpolate

This is a hint on how you'd do it and it is not very detailed.

Usage of fisheye objective makes this much more difficult to formalize. It is still guessable if you keep your matching pairs close to the center vertical of photograph.

  • \$\begingroup\$ While the exact calculation might be impossible, a very very good approximation can be done. It has been a while that unmanned vehicule can use computer vision to orient themselves and compute deplacement. The rover on Mars uses computer vision. The bundle adjustment technique and image registration does exactly that : take a bunch of image, approximate the 3D scene and the parameter of each image (position, orientation, camera model,...) \$\endgroup\$
    – Olivier
    Apr 29, 2017 at 7:00
  • \$\begingroup\$ @Olivier it's funny that you downvoted because my entire post is about calculating the said approximation. \$\endgroup\$ Apr 29, 2017 at 8:58
  • \$\begingroup\$ I downvoted because your first sentence is wrong. The approximation I mentionned has not much in common with yours. The subsequent mathematics might be correct, but it's based on an hypothesis which rarely occur in real life. The link I provided in my first comment (image registration) already provided information about finding view parameters from images. Please search for bundle adjustment \$\endgroup\$
    – Olivier
    Apr 29, 2017 at 14:14
  • \$\begingroup\$ @Olivier you have admitted that my first sentence is correct in first line of your comment. Machine vision has one degree of information more than in the problem discussed - it is ok to assume that copter did not move to the left or to the right but it is not correct to assume that it did not move forward. With machine vision, the coordinates of viewpoints is known (so, kinda one dimension only - from 1 to N) and it is needed to build approximate 3D model. cont..... \$\endgroup\$ Apr 29, 2017 at 15:33
  • \$\begingroup\$ @Olivier This case is incomplete reverse: only the flat model is known (volumetric maps are not very common and exact) and it is needed to deduce 2 coordinates from series of flat models. \$\endgroup\$ Apr 29, 2017 at 15:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.