Select multiple files in browser for conversion.
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello, I have written a simple code for converting RGB bitmap's to 8 bit .bmp's and .pgm to 8 bit .bmp. The code is as follows,
clear all
close all
% Prompt for image
[image_file image_file_path image_file_filterindex] = uigetfile({'*.pgm;*.bmp'}, 'Select image for conversion to *.bmp')
% This breaks up the input file name (image_file) into the directory (pathstr)
% the file name without the extention (name) and extention (ext)
[pathstr, name, ext] = fileparts(image_file);
% Find file extensions (must be either bmp or pgm)
image_file_type=image_file(max(strfind(image_file, '.'))+1:end);
% Only performs conversion if correct file types given
if(image_file_type=='bmp')
image_data=imread([image_file_path image_file], image_file_type);
image_data_n = rgb2gray(image_data);
imwrite(image_data_n, [image_file_path name '.bmp'], 'bmp');
elseif (image_file_type=='pgm')
image_data=imread([image_file_path image_file], image_file_type);
imwrite(image_data, [image_file_path name '.bmp'], 'bmp');
end
It works as intended however I would like to be able to select multiple files in the initial browser window to be converted. I thought of writing a loop to call different files of a similar name however then I would have to change the name of the files, as the names are not necessarily similar.
So, how do i change the above code so that I can select multiple files for conversion?
Thank you for your time, BN
0 Kommentare
Akzeptierte Antwort
Tom
am 26 Jun. 2012
uigetfile({'*.pgm;*.bmp'}, 'Select image for conversion to *.bmp','MultiSelect','On')
which will give you a cell array of file names and paths
you can then run these in a loop, so
for n=1:length(image_file)
[pathstr, name, ext] = fileparts(image_file{n});
...
end
FYI there are a couple of bits in your code you can simplify, for example you've written:
image_file_type=image_file(max(strfind(image_file, '.'))+1:end);
when you essentially already have that as in the 'ext' variable.
3 Kommentare
Tom
am 26 Jun. 2012
is the problem that if you only select one then it's not in a cell?
if ~iscell(image_file)
image_file={image_file};
image_path={image_path};
end
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Convert Image Type finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!