[Radiance-general] Generating view file from camera calibration
Claus B. Madsen
cbm at cvmt.aau.dk
Fri Sep 26 01:06:33 PDT 2008
Hi Tarik,
I should be able to help you. From what you are writing I have been
through many of the same things. I have used the Bouget calibration
toolbox some years ago, so I have forgotten the details. I am presently
using my own matlab based calibration tool, but the process of making a
link to Radiance should be the same.
What I have done is to make a simple Matlab script which auto-generates
a Radiance view file (.vp). Here is an example of the output from my
script for a given image where I have calibrated the camera to a
checker-board in the image:
rview -vtv -vp -2.555731 -1.572937 1.778183 -vd 0.807129 0.430026
-0.404500 -vu 0.359249 0.185955 0.914527 -vh 45.809853 -vv 31.486144
As stated: I have forgotten Bouget calibration details, but if you have
the 3x3 rotation and the 3x1 translation you are all set to go. In what
I am writing I am assuming that the rotation and translation information
constitutes transformation from world to camera (not vice versa).
I my code I have the world to camera transformation as a 4x4 matrix,
where the upper left 3x3 is the rotation, and the upper three elements
of the left-most column is the translation vector (standard
transformation matrix in homogenuous coordinates).
Here is my Matlab code that autogenerates the .vp file:
--------------------------------------------------------------------------------------
%world2cam is a 4x4 transformation from world to camera coordinates
%
%focallength_in_pixels is the estimated camera focal length measured in
pixels (it may be a negative number
%in the Bouget toolbox ... in that case multiply by -1 in the
expressions below)
%inverse to get camera to world transformation
cam2world = inv(world2cam);
%save camera parameters in a format directly applicable
%for RADIANCE rendering engine
camfilename = strcat(path,'CAMERA.vp');
fid = fopen(camfilename, 'w');
fprintf(fid, 'rview -vtv ');
fprintf(fid, '-vp %.6f %.6f %.6f ', cam2world(1:3,4));
fprintf(fid, '-vd %.6f %.6f %.6f ', -world2cam(3,1:3));
fprintf(fid, '-vu %.6f %.6f %.6f ', world2cam(2,1:3));
fprintf(fid, '-vh %.6f ', rad2deg(2*atan2(0.5*xres,
focallength_in_pixels)));
fprintf(fid, '-vv %.6f\n', rad2deg(2*atan2(0.5*yres,
focallength_in_pixels)));
fclose(fid);
------------------------------------------------------------------------------------------------------
The part in your mail that concerns multiple images and axes that are
not aligned I do not understand so I can't assist on that.
Sincerely,
Claus
P.S. I have the same exporting facility generating a MAXscript that will
set up a matched camera in 3D studio max, but max has built-in camera
matching.
tarik.rahman at ed.ac.uk wrote:
>
> Hi
>
> I was wondering if someone knows how to generate a view file in
> Radiance, given real life
> camera calibration parameters. I've created a scene and view file in
> Radiance and I'm now trying to create the exact geometric model in
> real life.
>
> I have the focal length and image resolution, so can compute the -vh
> and -vv angle values but the main problem is trying to compute the -vp
> and -vd parameters.
>
> I have the 3x3 Rotation matrix and 3x1 Translation vector from using
> the Bouget Camera Calibration Toolbox in Matlab. The axes are the same
> as for my Radiance scene but I need to translate the camera reference
> frame origin to the geometric world scene origin.
>
> Also I'd like to know how to do the Rotation as well for other images
> I have whereby after calibration, the axes may not be aligned.
> I've been looking in a few books but find some things ambiguous and
> getting a bit confused, so just wondering if somebody has a quick
> solution.
>
> I've considered 'cheating' by re-writing the geometry in the .rad file
> so that the camera reference frame origin is at the geometric world
> origin, but I'd prefer not to do this.
>
> Any help is greatly appreciated
>
> Thanks
>
> Tarik
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cbm.vcf
Type: text/x-vcard
Size: 381 bytes
Desc: not available
Url : http://radiance-online.org/pipermail/radiance-general/attachments/20080926/1f75dae3/cbm.vcf
More information about the Radiance-general
mailing list