the following problem occurs always again when calibrating projectors which exact position and orientation is unknown onto a known projection screen.

given are four points in space which lie on a plane.

x and y are given. without loss of generality z is zero for all four points.

what is the the 3d transformation matrix (projection, scale, translate, rotate) which would transform a quad, so that its projection onto the xy plane has the given four coordinates?

anybody has some mathematical pointers or insights for this?

i think this is kind of what artoolkit can do: given a quad anywhere in space that is visible through a camera, artoolkit can tell you the transformation between this quad and the camera.

at the bottom of this page there are some .pdfs with the math behind this. look for Hirokazu Kato and Mark Billinghurst. they are the original authors of artoolkit.

artoolkitplus is based on the same algorithms as artoolkit but is a new object-oriented implementation.

also the brainsalt people told me they once used the GNU scientific library to do something like this (even on a cylindrical projection surface!).

i will look through this, but at first sight it seems to answer a broader question by using a statistical approach. i was more looking for a direct formula for calculating matrix coefficients. ideally the result should be a node where you would enter x1y1-x4y4 and get the resulting transformation out.

maybe that’s a bit of a canon on sparrows. but have a look at oliver bimbers research on smart projectors. you should at least find a pointer to the basics…

For a while i’ve been thinking that this would be possible with a webcam, artoolkit+ and a couple of nodes
i’m going to try my hand at it now and see how far I can get

the 4 point calibration is already done. see the Homography (Transform 2d) node and its help patch.
but doing it in 3d is the real quest. given some points of an object, find the transform that puts the object into that position…

I’ll see if I can get my head around the trig (i did a masters in physics) but dont think i’ll have the time at the moment.

I started yesterday and it seems pretty straightforward to make some sort of point to point calibration. As for AR, i’ll keep trying but i still haven’t managed to properly calibrate a camera with the ART+ node (as I’m discussing in another thread)
will keep trying

on an update to this post, i got some new tricks workng with homography, assigntransform and a few other bits which make it pretty snappy to get your projector calibrated.

essentially it automatically keeps 4 control points on your projection correctly mapped, so all you have to do is get the camera(i.e. projector) xyz position correct and everything else is automatic (so dont have to worry about rotations or zoom). So as you tweak the projector position, your 4 control points stay in place and you can see how the projection is being distorted (so if you’re moving the camera/projector left and the image is improving, then you know to keep moving it left)

If anyone’s interested i’ll try to put an example patch together

I left all my code for this at the last studio I was at,
I’ll send them an email and see if i can get a copy of the code, otherwise i’ll whip together a simple example. (sorry for being slow to get around to posting things!)