# Given known reference points, how do I calculate the approximate height of a point from a photograph

I have a photo with three towers. I know that the base of all three towers are at the same elevation, and at the top they each comes to a point. Two of the towers are the same height, though they appear to be different heights in the image, due to perspective.

I know the x/y/z coordinates of the peaks of the two known towers. I know the x/z coordinates of the third tower. I am trying to find the y (height) coordinate of the peak of the third tower. All three peaks are clearly visible within the photo, but despite knowing that the bases are all at the same eleveation (lets call it y:0) They are not visible in the photo. I don't think this should have any affect, as the are known to be equall I should only have to deal with the x/y/z of the three peaks, and I think I can safely ignore anything else.

For clarity: X = East/West, Y = Elevation and Z = North/South

Tower 1 Peak (X, Y, Z) : 0, 129, 0

Tower 2 Peak (X, Y, Z) : 16, 129, 97

Tower 3 Peak (X, Y, Z) : -40, ???, 78

The following are the X/Y pixel coordinates of the three peaks in the photo:

Tower 1 Peak (X, Y): 1235, 227

Tower 2 Peak (X, Y): 1445, 528

Tower 3 Peak (X, Y): 2042, 397

Please note that the pixel coordinates are taken with 0,0 being the top left corner of the image.

Is it even possible to calculate the approximate height of the third tower? If so, how might I go about doing do?

-
Where are you located in the coordinate system of the tower? Can you see the base of at least one tower in the photo? – Ross Millikan Aug 22 '12 at 15:34
The bases of all three are well within the bounds of the image, but there are other objects (walls, trees, etc.) wich are in the way, so I cannot see their precise positions. I do know that in real life, they are all at an equal elevation. As such being able to find the coordinate of the third tower's peak would tell me the tower's height, as I've made Y{0} the elevation of the base of the three towers. At least, I think that should work... Am I misunderstanding something? (very possible =P) – Chronicide Aug 22 '12 at 15:42
I think you are understanding correctly, but if we could see the base of one, we could measure the angle at the camera and get a scale of distance. You didn't say whether you know the location the photo was taken from in the XZ plane. Just trying to know what all information we have to play with. – Ross Millikan Aug 22 '12 at 15:45
I was able to measure the verticle angle of the towers, and it was just slightly off 90 degrees (88.2) There were also a lot of lines on the various towers that I know to be parralel to the ground. Extrapolating these all point at 257, 1629 being the apparent 'vanishing point' in the distance of the image. Is there anything else I could try to determine? – Chronicide Aug 22 '12 at 15:54
Also, unfortunately, I have no way to determine where the camera was in this coordinate system. I am using images to try to replacate a real-world location in as a digital 3d model. I have a lot of data about the "footprint" of the location (x/z coordinates) but not much to got from besides photos for the relative heights. – Chronicide Aug 22 '12 at 15:59

Counting degrees of freedom, I'd say it's unlikely you can fix the camera's location in space well enough from the information you have given here. You have measured 8 quantities (namely the image coordinates of the three tower tops and the vanishing point), but the degrees of freedom you have to fix are:

• Where in space was the camera located when the picture was taken? (3 degrees of freedom)
• Were did the camera's optical axis point? (2 degrees of freedom)
• How was the camera turned about the optical axis? (1 degree of freedom)
• What is the focal length of the camera, measured in the image coordinate uints? (1 degree of freedom)
• Where in the image coordinate system is the optical axis? (2 degrees of freedom)

That's nine degrees of freedom all in all, which is one more than the number of numbers you have measured. And what you actually need is a tenth degree of freedom about the situation:

• Where on the vertical line representing tower 3 is your third image point? (1 degree of freedom)

If you know the towers themselves to be exactly vertical, it is possible that you can just about get a fix by measuring the coordinates of the vertical vanishing point in the image. But it's going to be a messy and possibly not very robust robust calculation.

-
Well, I guess I was hoping for a silver bullet. I should be able to approximate the height, as I know the circumference of the cylindrical third tower. I can use this to determine the general scale of the entire thing. The only hiccup is that I can't determine it's base, but I think I might be able to substitute the height above the horizon point of the photo. – Chronicide Aug 22 '12 at 17:04