gusucode.com > 基于matlab软件,实现双目视觉原理的摄像机标定,能根据各视场图像求内、外部参数 > 基于matlab软件,实现双目视觉原理的摄像机标定,能根据各视场图像求内、外部参数/TOOLBOX_calib/extract_distortion_data.m

    %%% Small script file that etst 

%load Calib_Results;

% Collect all the points distorted (xd) and undistorted (xn) from the
% images:

xn = [];
xd = [];
for kk = ind_active,
    eval(['x_kk = x_' num2str(kk) ';']);
    xd_kk = normalize_pixel(x_kk,fc,cc,zeros(5,1),alpha_c);
    eval(['X_kk = X_' num2str(kk) ';']);
    eval(['omckk = omc_' num2str(kk) ';']);
    eval(['Tckk = Tc_' num2str(kk) ';']);
    xn_kk = project_points2(X_kk,omckk,Tckk);
    xd = [xd xd_kk];
    xn = [xn xn_kk];
end;


% Data points:
r = sqrt(sum(xn.^2)); % The undistorted radii
rp = sqrt(sum(xd.^2)); % The distorted radii

%--- Try different analytical models to fit r_prime = D(r)

ri = 0.005:.005:max(r);

% Calibration toolbox model:
rt = ri .* (1 + kc(1)*ri.^2 + kc(2)*ri.^4 + kc(5)*ri.^6);



return;


figure(10);
clf;
h1 = plot(r,rp,'r.','markersize',.1); hold on;
h2 = plot(ri,rt,'r-','linewidth',.1);
title('Radial distortion function (with unit focal) - r prime = D(r)');
xlabel('r');
ylabel('r prime');
zoom on;