I'd like to measure the real world positions of some objects using a digital photo of them. I have no problem with using rotation transformation matrices to adjust for the angle of view, but I need help on how to adjust for the perspective distortions: the closer to the camera objects are, the larger they look.

The objects of interest are on a circular disc with known diameter. I don't know anything a priori about the position of the camera relative to the disc (distance, angles). But this maybe can be derived from the relationship between the known real world shape of the disc, and its apparent shape on the photo?

For example, the camera is obviously directed towards the center pixel in the photo (it has not been cut out). And the elliptic shape of the disc in the photo, the relation between the small and large elliptic axes, gives some more information.

A clue might be that the disc has regular marks around its edge, like a clock. I could measure the distances between these marks and get more information about the perspective distortions. For example, the distance between the two adjacent marks which are nearest the camera is about 50% larger than between the two marks furthest away from the camera. In the real world, they are all equally spaced.

My primary interest is the angels between the objects and the center of the disc, as if the objects were the hands of a clock and I wanted to read out the time.

I hope you find this problem interesting! Thanks in advance for any suggestions.