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

    fprintf(1,'Script that merges two "Cabib_Results.mat" data sets of the same camera into a single dataset\n')

dir;


cont = 1;
while cont
    data_set1 = input('Filename of the first dataset (with complete path if necessary): ','s');    
    cont = ((exist(data_set1)~=2));
    if cont,
        fprintf(1,'File not found. Try again.\n');
    end;
end;
cont = 1;
while cont
    data_set2 = input('Filename of the second dataset (with complete path if necessary): ','s');    
    cont = ((exist(data_set2)~=2));
    if cont,
        fprintf(1,'File not found. Try again.\n');
    end;
end;


load(data_set1); % part1\Calib_Results;

shift = n_ima;

load(data_set2); % part2\Calib_Results;

active_images2 = active_images;
n_ima2 = n_ima;


for kk = 1:n_ima

eval(['X_' num2str(kk+shift) ' = X_' num2str(kk) ';']);

    
eval(['dX_' num2str(kk+shift) ' = dX_' num2str(kk) ';']);
eval(['dY_' num2str(kk+shift) ' = dY_' num2str(kk) ';']);

eval(['wintx_' num2str(kk+shift) ' = wintx_' num2str(kk) ';']);
eval(['winty_' num2str(kk+shift) ' = winty_' num2str(kk) ';']);

eval(['x_' num2str(kk+shift) ' = x_' num2str(kk) ';']);
eval(['y_' num2str(kk+shift) ' = y_' num2str(kk) ';']);

eval(['n_sq_x_' num2str(kk+shift) ' = n_sq_x_' num2str(kk) ';']);
eval(['n_sq_y_' num2str(kk+shift) ' = n_sq_y_' num2str(kk) ';']);


eval(['omc_' num2str(kk+shift) ' = omc_' num2str(kk) ';']);
eval(['Tc_' num2str(kk+shift) ' = Tc_' num2str(kk) ';']);

end;

load(data_set1); % part1\Calib_Results;

n_ima = n_ima + n_ima2;
active_images = [active_images active_images2];

no_image = 1;

% Recompute the error (in the vector ex):
comp_error_calib;

fprintf('The two calibration datasets are now merged. You are now ready to run calibration. \n');