www.pudn.com > Digital_Image_Correlation_2010b.zip > filelist_generator.m, change:2010-11-20,size:5238b


function [FileNameBase,PathNameBase,filenamelist]=filelist_generator 
 
% Code to construct a list of 9999 or less filenames 
% Programmed by Rob, changed by Chris. Automatic filelist generation  
% and image time aquisition added by Chris. 
% Last revision: 12/25/06 
 
filenamelistmode = menu(sprintf('How do you want to create the filenamelist?'),... 
    'Manually','Automatically','Cancel'); 
if filenamelistmode==3 
    return 
end 
if filenamelistmode==2 
    [FileNameBase,PathNameBase,filenamelist]=automatically; 
end 
if filenamelistmode==1 
    [FileNameBase,PathNameBase,filenamelist]=manually; 
end 
 
[FileNameBase,PathNameBase,filenamelist]=imagetime(FileNameBase,PathNameBase,filenamelist); 
 
%  ------------------------------------------------------- 
 
function [Firstimagename,ImageFolder,filenamelist]=automatically 
 
[Firstimagename ImageFolder]=uigetfile('*.tif','Open First Image'); 
if Firstimagename~~[]; 
    cd(ImageFolder); 
end 
 
if Firstimagename~~[]; 
    % Get the number of image name 
    letters=isletter(Firstimagename); 
    Pointposition=findstr(Firstimagename,'.'); 
    Firstimagenamesize=size(Firstimagename); 
    counter=Pointposition-1; 
    counterpos=1; 
    letterstest=0; 
    while letterstest==0 
        letterstest=letters(counter); 
        if letterstest==1 
            break 
        end 
        Numberpos(counterpos)=counter; 
        counter=counter-1; 
        counterpos=counterpos+1; 
        if counter==0 
            break 
        end 
    end 
 
    Filename_first = Firstimagename(1:min(Numberpos)-1); 
    Firstfilenumber=Firstimagename(min(Numberpos):max(Numberpos)); 
    Lastname_first = Firstimagename(max(Numberpos)+1:Firstimagenamesize(1,2)); 
    Firstfilenumbersize=size(Firstfilenumber); 
    onemore=10^(Firstfilenumbersize(1,2)); 
    filenamelist(1,:)=Firstimagename; 
 
    Firstfilenumber=str2num(Firstfilenumber); 
    u=1+onemore+Firstfilenumber; 
    ustr=num2str(u); 
    filenamelist(2,:)=[Filename_first ustr(2:Firstfilenumbersize(1,2)+1) Lastname_first]; 
    numberofimages=2; 
 
    counter=1; 
     
    while exist(filenamelist((counter+1),:),'file') ==2; 
        counter=counter+1; 
        u=1+u; 
        ustr=num2str(u); 
        filenamelist(counter+1,:)=[Filename_first ustr(2:Firstfilenumbersize(1,2)+1) Lastname_first]; 
        if exist(filenamelist((counter+1),:),'file') ==0; 
            warning('Last image detected') 
            filenamelist(counter+1,:)=[]; 
            break 
        end 
    end 
end 
[FileNameBase,PathNameBase] = uiputfile('filenamelist.mat','Save as "filenamelist" in image directory (recommended)'); 
cd(PathNameBase) 
save(FileNameBase,'filenamelist'); 
 
%  ------------------------------------------------------- 
function [FileNameBase,PathNameBase,filenamelist]=manually; 
% Prompt user for images to be used for analysis   
 
prompt = {'Enter number of first image (i.e. "3" for PIC00003):','Enter number of last image (i.e. "100" for PIC00100):'}; 
dlg_title = 'Input images to be used for the analysis'; 
num_lines= 1; 
def     = {'1','100'}; 
answer = inputdlg(prompt,dlg_title,num_lines,def); 
F2 = str2num(cell2mat(answer(1,1))); 
F = str2num(cell2mat(answer(2,1))); 
 
if F >= 10000 
    error0 = menu('!!! ERROR - Code will only work properly for 9999 or less picture files !!!','Restart'); 
    return 
end 
 
% Choose first name of images 
G = 'PIC1'; 
prompt = {'Enter Image Name (first 4 letters):'}; 
dlg_title = 'Input images to be used for the analysis'; 
num_lines= 1; 
def     = {'PIC1'}; 
answer = inputdlg(prompt,dlg_title,num_lines,def); 
G = cell2mat(answer(1,1)); 
 
E='.tif'; 
 
namelist(1:F-F2+1,1)=G(1,1); 
namelist(1:F-F2+1,2)=G(1,2); 
namelist(1:F-F2+1,3)=G(1,3); 
namelist(1:F-F2+1,4)=G(1,4); 
 
% create the numberlist 
num=((10000+F2):(10000+F))'; 
 
% Creation of final results 
filenamelist=namelist; 
str=num2str(num); 
filenamelist(:,5:8)=str(:,2:5); 
 
filenamelist(1:F-F2+1,9)=E(1,1); 
filenamelist(1:F-F2+1,10)=E(1,2); 
filenamelist(1:F-F2+1,11)=E(1,3); 
filenamelist(1:F-F2+1,12)=E(1,4); 
 
 
% Save results 
[FileNameBase,PathNameBase] = uiputfile('filenamelist.mat','Save as "filenamelist" in image directory (recommended)'); 
cd(PathNameBase) 
save(FileNameBase,'filenamelist'); 
 
 
%  ---------------------------------------- 
% Extract the time from images? 
 
function [FileNameBase,PathNameBase,filenamelist]=imagetime(FileNameBase,PathNameBase,filenamelist) 
 
selection_time_image = menu(sprintf('Do you also want to extract the time from images to match stress and strain?'),'Yes','No'); 
 
if selection_time_image==1 
   
    % Loop through all images in imagetimelist to get all image capture times 
     
    [ri,ci]=size(filenamelist); 
     
    o=waitbar(0,'Extracting the image capture times...'); 
     
    for q=1:ri 
         
        waitbar(q/ri); 
        info=imfinfo(filenamelist(q,:)); 
        time=datevec(info.FileModDate,13); 
        seconds(q)=time(1,4)*3600+time(1,5)*60+time(1,6); 
         
    end 
     
    close(o) 
     
    % Configure and then save image number vs. image capture time text file 
     
    im_num_im_cap_time=[(1:ri)' seconds']; 
    save time_image.txt im_num_im_cap_time -ascii -tabs 
     
end