gusucode.com > 基于matlab软件,实现双目视觉原理的摄像机标定,能根据各视场图像求内、外部参数 > 基于matlab软件,实现双目视觉原理的摄像机标定,能根据各视场图像求内、外部参数/TOOLBOX_calib/mosaic_no_read.m
if ~exist('n_ima'), data_calib_no_read; end; check_active_images; n_col = floor(sqrt(n_ima*nx/ny)); n_row = ceil(n_ima / n_col); ker2 = 1; for ii = 1:n_col, ker2 = conv(ker2,[1/4 1/2 1/4]); end; ny2 = length(1:n_col:ny); nx2 = length(1:n_col:nx); %II = I_1(1:n_col:end,1:n_col:end); %[ny2,nx2] = size(II); kk_c = 1; II_mosaic = []; for jj = 1:n_row, II_row = []; for ii = 1:n_col, if (kk_c <= n_ima), if ~type_numbering, number_ext = num2str(image_numbers(kk_c)); else number_ext = sprintf(['%.' num2str(N_slots) 'd'],image_numbers(kk_c)); end; ima_name = [calib_name number_ext '.' format_image]; if (exist(ima_name)) & (kk_c <= n_ima), if active_images(kk_c), if format_image(1) == 'p', if format_image(2) == 'p', I = double(loadppm(ima_name)); else I = double(loadpgm(ima_name)); end; else if format_image(1) == 'r', I = readras(ima_name); else I = double(imread(ima_name)); end; end; %I = conv2(conv2(I,ker2,'same'),ker2','same'); % anti-aliasing I = I(1:n_col:end,1:n_col:end); else I = zeros(ny2,nx2); end; else I = zeros(ny2,nx2); end; else I = zeros(ny2,nx2); end; II_row = [II_row I]; if ii ~= n_col, II_row = [II_row zeros(ny2,3)]; end; kk_c = kk_c + 1; end; nn2 = size(II_row,2); if jj ~= n_row, II_row = [II_row; zeros(3,nn2)]; end; II_mosaic = [II_mosaic ; II_row]; end; figure(2); image(II_mosaic); colormap(gray(256)); title('Calibration images'); set(gca,'Xtick',[]) set(gca,'Ytick',[]) axis('image');