I have to run an image processing algorithm on numerous images in a directory.
An image is saved as name_typeX.tif
, so there are X different type of im
It sounds like you are wanting to get all files in a directory whose names match a certain format, then process them all automatically. You can do this using the function DIR to get a list of file names in the current directory, then using the function REGEXP to find file names that match a certain pattern. Here's an example:
fileData = dir(); %# Get a structure of data for the files in the
%# current directory
fileNames = {fileData.name}; %# Put the file names in a cell array
index = regexp(fileNames,... %# Match a file name if it begins
'^[A-Za-z]+_type\d+\.tif$'); %# with at least one letter,
%# followed by `_type`, followed
%# by at least one number, and
%# ending with '.tif'
inFiles = fileNames(~cellfun(@isempty,index)); %# Get the names of the matching
%# files in a cell array
Once you have a cell array of files in inFiles
that matches the naming pattern you want, you can simply loop over the files and perform your processing. For example, your code might look like this:
nFiles = numel(inFiles); %# Get the number of input files
for iFile = 1:nFiles %# Loop over the input files
inFile = inFiles{iFile}; %# Get the current input file
inImg = imread(inFile); %# Load the image data
[outImg,someNumber] = process_your_image(inImg); %# Process the image data
outFile = [strtok(inFile,'.') ... %# Remove the '.tif' from the input file,
'_' ... %# append an underscore,
num2str(someNumber) ... %# append the number as a string, and
'.tif']; %# add the `.tif` again
imwrite(outImg,outFile); %# Write the new image data to a file
end
The above example uses the functions NUMEL, STRTOK, NUM2STR, IMREAD, and IMWRITE.