Question

I have images of an elliptical beam on 2 different planes. I do know the distance between the 2 planes (d = distance between plane A and plane B) and I know rotation angle theta (θ) calculated from knowing the center coordinates of the ellipse on the 2 planes. How do I calculate the distance R projected back to the origin of the light source? I can find what the distance (D) from Plane A to the origin is. I've been thinking about this for a while and can't quite figure it out. I would like to implement an algorithm to calculate R in C#. The programming part is easy, but the math I'm no so sure how to go about doing it.

enter image description here

Was it helpful?

Solution

If the image is taken with a telephoto lens with axis piercing the beam source so that foreshortening and off-axis effects are trivial, the situation is best viewed from the right side as you have drawn it. Then you have two similar right triangles with common vertex at the light source.

    |^--..._
 rA |   rB| ^^__
    |_____|______o   (Pardon my ascii art skills.)
    <--d-->
    <--------x-->

You seem to know or can easily find rA, and rB the in-plane distances from beam source image to elipse center and also d the inter-plane distance. And you want to know x.

For this just set up the proportion

x / rA = (x-d) / rB.  

Now you can easily solve for x.

If the image is taken with a normal lens from relatively close to the beam source, you need to know the camera geometry so that you can account for perspective effects. Even then, lens distortion can cause errors unless you know a lot about the camera and do some fancy corrections.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top