% This small script looks in the direcory and checks if the images are there. % % This works only on Matlab 5.x (otherwise, the dir commands works differently) % (c) Jean-Yves Bouguet - Dec. 27th, 1999 l = dir([calib_name '*']); Nl = size(l,1); Nima_valid = 0; ind_valid = []; loc_extension = []; length_name = size(calib_name,2); if Nl > 0, for pp = 1:Nl, filenamepp = l(pp).name; if isempty(calib_name), iii = 1; else iii = findstr(filenamepp,calib_name); end; loc_ext = findstr(filenamepp,format_image); string_num = filenamepp(length_name+1:loc_ext - 2); if isempty(str2num(string_num)), iii = []; end; if ~isempty(iii), if (iii(1) ~= 1), iii = []; end; end; if ~isempty(iii) & ~isempty(loc_ext), Nima_valid = Nima_valid + 1; ind_valid = [ind_valid pp]; loc_extension = [loc_extension loc_ext(1)]; end; end; if (Nima_valid==0), % try the upper case format: format_image = upper(format_image); for pp = 1:Nl, filenamepp = l(pp).name; if isempty(calib_name), iii = 1; else iii = findstr(filenamepp,calib_name); end; loc_ext = findstr(filenamepp,format_image); string_num = filenamepp(length_name+1:loc_ext - 2); if isempty(str2num(string_num)), iii = []; end; if ~isempty(iii), if (iii(1) ~= 1), iii = []; end; end; if ~isempty(iii) & ~isempty(loc_ext), Nima_valid = Nima_valid + 1; ind_valid = [ind_valid pp]; loc_extension = [loc_extension loc_ext(1)]; end; end; if (Nima_valid==0), fprintf(1,'No image found. File format may be wrong.\n'); else % Get all the string numbers: string_length = zeros(1,Nima_valid); indices = zeros(1,Nima_valid); for ppp = 1:Nima_valid, name = l(ind_valid(ppp)).name; string_num = name(length_name+1:loc_extension(ppp) - 2); string_length(ppp) = size(string_num,2); indices(ppp) = str2num(string_num); end; % Number of images... first_num = min(indices); n_ima = max(indices) - first_num + 1; if min(string_length) == max(string_length), N_slots = min(string_length); type_numbering = 1; else N_slots = 1; type_numbering = 0; end; image_numbers = first_num:n_ima-1+first_num; %%% By default, all the images are active for calibration: active_images = ones(1,n_ima); end; else % Get all the string numbers: string_length = zeros(1,Nima_valid); indices = zeros(1,Nima_valid); for ppp = 1:Nima_valid, name = l(ind_valid(ppp)).name; string_num = name(length_name+1:loc_extension(ppp) - 2); string_length(ppp) = size(string_num,2); indices(ppp) = str2num(string_num); end; % Number of images... first_num = min(indices); n_ima = max(indices) - first_num + 1; if min(string_length) == max(string_length), N_slots = min(string_length); type_numbering = 1; else N_slots = 1; type_numbering = 0; end; image_numbers = first_num:n_ima-1+first_num; %%% By default, all the images are active for calibration: active_images = ones(1,n_ima); end; else fprintf(1,'No image found. Basename may be wrong.\n'); end;