Calculating resize amount needed to match of image sizes of difference FOVs (AOVs).
I am trying to work out the scaling factor required to match up the size of objects in 2 photos, taken from the same position, with different (known) Field/Angle of views.
(You could also use it to find out the FOV of one image if you know the FOV of another and work out the scaling factor yourself by manually resizing in photoshop).
Here is a diagram that might help to explain what i mean.
(The focal point is supposed to be the same for each image - it was just easier to draw like this. If it makes it easier to understand, you can think of the angles as half the FOVs and the heights as half the image heights).
Say we know that image 1 has a vertical FOV of x and a pixel height of a.
Image 2 has a vertical FOV of y and a pixel height of b.
Both images are taken from a constant distance of 'c', which is important, but means that the distance does not need to be known.
Basically, what I am asking is how to calculate how much i need to scale an image of say 128 degrees vfov up in order for the content in its centre to match up with that of the same image but taken with a 32 degrees vertical field of view.
The images themselves both have the same height, so with scaling, the 128 image would obviously grow larger.
Conversely, if doing the opposite, and trying to match up the content of the 32 fov image with the 128 one, you would have to shrink it down (so scale it by a factor of <1 ).
Unfortunately, i cannot seem to work out how to do this. I have tried work it out by messing around with the formula that i would normally use to calculate FOV:
This calculates the vertical FOV of your vision that viewing your monitor takes up. You can apply the same thing to photographic images though:
VFOV = 2 * atan( screen_height / ( 2 * distance_to_screen) )
I can try and post my (failed) working later when i can find it, but i can already tell you now that there is obviously some drastically wrong assumptions i am making!
VFOV of image captured = 2 * atan( sensor_size_height / ( 2 * focal_length_of_lens) )
If anyone can come up with the solution, this would be very useful!
For example, you could work out the FOV of an unknown camera by taking a picture with it and a camera with a known (fixed) FOV from the same position and using the amount that you have to scale the images to get them to match to find the unknown cameras FOV.
Re: Calculating resize amount needed to match of image sizes of difference FOVs (AOVs
Okay, just in case anyone else looks at this topic, it turns out that my working was correct and i was just using mislabled FOV reference images to test, which made me think otherwise!
The formula would be:
Or more simply, if you just want a scaling factor, treat the size of the original dimensions as 1, so:
Scaled size = ( tan ( FOV_scaling_TO / 2) * size_of_original_image_dimension ) / tan ( FOV_scaling_FROM / 2 )
Scaling factor = tan( FOV_scaling_TO / 2) / tan( FOV_scaling_FROM / 2 )