Forum

Calculation of lens shift++

Hi,
this is a modified version of a post I made to the patching section, but maybe it is more relevant here, it would be great to get some feedback…

I have a few questions related to the parameters of the projector module:

According to the wiki I should be able to calculate the lens shift based on info from the manual.
So far I have only done this by trial and error, but it would be great to understand the logic of this. It is probably very simple, but I suspect my brain isn´t wired up for this…

my sanyo manual has a chart similar to that in the “how to project on 3D geometry” wiki, so I know the height of the image at a certain distance, for instance at distance D=2400 the height H=1524. The perpendicular from the projector to the screen divides H into A and B, A:B=9:1.
So from this information I am able to calculate the different angles, but I don´t see how to turn this into something useful for the shift y parameter in the projector module?
By trial and error I have set the shift-Y value to .3844, but I am confused about what type of unit this refers to. First I thought it was a angle value, but that gives an angle of 138.38, which doesn´t make sense.

So, if someone could explain how I can turn the data from the manual into the magic shift-y value I would be very happy!

How do I determine the lens depth?
Do I just leave it at the default of -.0200?

The position of the projector is calculated from the center. Am I right in assuming that the module calculates the position of the cone based on the dimension of the projector?
Also, when measuring the position of the projector related to (0,0,0), should I always measure to the centre (both in depth and height) of the projector, or to the front (since the module already knows the dimension of the projector)?

thanks,
hc

hi hcgilje

sorry for the late response…

The Shift X & Shift Y parameters specify how much the image should be shifted away from the “central ray”.
So 0.0 means that the image is not shifted. Half of the image is over the projectors horizontal plane, the other half of the image is under this plane. The same for x: half of the image is left of the central ray, the other half at the right.

The values are relative to the image itself.
So a value of 0.5 at Shift Y means: shift it 0.5 images up. Now the image starts at central ray, 100% is over the horizontal plane, 0% under it.

Shift Y is relative to the image height, Shift X is relative to the image width.

In the attached patch you can see how to deal with a A:B specification.

The 6 first pins Projector Width, Height & Depth, Lens Radius, Depth & Position are ALL measured in the same unit. Which unit is up to you (feet, meters, …). Just make sure they are all measured in the SAME unit of your choice.

If you measure everything in meters then a value of -0.02 (meters) for Lens Depth means that the Lens is 2 centimeters from the front plane of the projector (a negative values means inside).
Gamble with values and see how the iconographic representation of the projector changes. Be satisfied when the icon looks a bit like your real projector.

The position of the projector is calculated from the center. Am I right in assuming that the module calculates the position of the cone based on the dimension of the projector?

Yes.

Also, when measuring the position of the projector related to (0,0,0), should I always measure to the centre (both in depth and height) of the projector, or to the front (since the module already knows the dimension of the projector)?

Always measure to the center of the projector.

Projector (EX9) help.v4p (10.6 kB)

Thanks for the informative reply!

My guess based on trial and error for the shift-y value was .3844, and the calculated value is .4, so I was pretty close, but it will be interesting to see if is enough to make a difference, as I am not quite there yet when it comes to accuracy (but pretty close).

hc

hey,

  1. what described the pin “Image Width on Lens”

  2. which distance is correct by the calculation of
    the “Zoom-Ratio”: z-Axis or the diagonal between Origin (0/O/0) and lens middle-point

thanks for your support

  1. what described the pin “Image Width on Lens”

it is literally the width of the image on the lens. Measure it using the same units used throughout.

  1. which distance is correct by the calculation of
    the “Zoom-Ratio”: z-Axis or the diagonal between Origin (0/O/0) and lens middle-point

this is the throw ratio of your lens. If your lens has adjustable zoom, point it square to a wall, measure the distance from lens to the wall and divide it by the width of the display.

you can perform lens shift, rotation and zoom all in one transform by using homography with control points
the source points you get by using 4 3d points in your scene with applytransform
then for the target points you use your mouse
that way you can calibrate in seconds
the only thing that’s unknown is the position of the projector
but you can see from the distortions which way you need to move, and the 4 control points will remain locked in place as you change the other parameters

@sugoku

This method sound really clever, I have some questions though that I can’t wrap my head around.

  1. The homography transform need 2D source and control points, how do you get the 3D points into 2D this way.

  2. Do the 4 3D points all have to be in the same plane? (that is what I would expect)

In my attempts on doing a similar thing I have thought completely different about this… this sounds so much more simple and therefore more elegant

sunep

I second that…it sure sounds like clever solution. I like the sound of calibration in seconds!

I’m yet to try this, but I’ll have a stab at it over the next week.
Of course Sugoku if you want to post of patch to get us started you’re very welcome.

best,
Sohan

i don’t get it totally, either.
i wonder if it’s faster than the already-quick method of calibration which is demonstrated in the help patch (iirc), then it’s really interesting!

i don’t fully get it either sugokuGENKI, sounds great though. Do you have a patch you can upload please?

@sugokuGENKI, any more info on your ‘calibrate in seconds’ technique? thanks