Newer
Older
abgabensammlungSS15 / mr / Ub5 / TOOLBOX_calib / willson_read.m
@MaxXximus92 MaxXximus92 on 20 May 2015 1 KB mr Ub5 ea UB5 initial
% Read in Reg Willson's data file, and convert it into my data format:

if exist('calib_file'),
   if exist(calib_file)~=2,
      ask = 1;
   else
      ask = 0;
   end;
else
   ask = 1;
end;


while ask,
   
   calib_file = input('Reg Willson calibration file name to convert: ','s');
   
   if ~isempty(calib_file),
	   if exist(calib_file)~=2,
   	   ask = 1;
   	else
      	ask = 0;
   	end;
	else
   	ask = 1;
   end;
   
   if ask,
      fprintf(1,'File not found. Try again.\n');
   end;
   
end;

if exist(calib_file),
   
   fprintf(1,['Loading Willson calibration parameters from file ' calib_file '...\n']);
   
	load(calib_file);
	
	inddot = find(calib_file == '.');
	
   if isempty(inddot),
      varname = calib_file;
   else
      varname = calib_file(1:inddot(1)-1);   	
	end;
	
	eval(['calib_params = ' varname ';'])
	
	Ncx = calib_params(1);
   Nfx = calib_params(2);
   dx = calib_params(3);
   dy = calib_params(4);
   dpx = calib_params(5);
   dpy = calib_params(6);
   Cx = calib_params(7);
   Cy = calib_params(8);
   sx = calib_params(9);
   f = calib_params(10);
   kappa1 = calib_params(11);
   Tx = calib_params(12);
   Ty = calib_params(13);
   Tz = calib_params(14);
   Rx = calib_params(15);
   Ry = calib_params(16);
   Rz = calib_params(17);
   p1 = calib_params(18);
   p2 = calib_params(19);
   
   fprintf(1,'Converting the calibration parameters... (may take a while due to the convertion of the distortion model)...\n');
   
   % Conversion:
   [fc,cc,kc,alpha_c,Rc_1,Tc_1,omc_1,nx,ny,x_dist,xd] = willson_convert(Ncx,Nfx,dx,dy,dpx,dpy,Cx,Cy,sx,f,kappa1,Tx,Ty,Tz,Rx,Ry,Rz,p1,p2);
   
   KK = [fc(1) alpha_c*fc(1) cc(1);0 fc(2) cc(2) ; 0 0 1];
   
   n_ima = 1;
   
   X_1 = [NaN;NaN;NaN];
   x_1 = [NaN;NaN];
   
   map = gray(256);
   
   fprintf(1,'done\n');
   fprintf(1,'You are now ready to save the calibration parameters by clicking on Save.\n');

else
   
   disp(['WARNING: Calibration file ' calib_file ' not found']);
   
end;