[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