Azzera filtri
Azzera filtri

How to use different file format in MATLAB

10 visualizzazioni (ultimi 30 giorni)
Siam
Siam il 21 Ott 2014
Commentato: Siam il 11 Nov 2014
Hi there,
I was using same file format (.tif) as input while processing with my following code. However, I have got new images with other formats like jpg, bmp.
I was previously using the below line and every time I need to change the extension manually in
M = dir(fullfile(imgPath,'*.tif'));
to work with different extension.
In most cases in one folder of the file extensions are different it only works with .tif and ignore others.
Any advice will be highly appreciated.

Risposta accettata

Guillaume
Guillaume il 21 Ott 2014
Just get all the files in the directory and keep only the ones with the extensions you want. You could even get the list of all valid image extension from imformats:
%option 1:
extensions = {'bmp', 'tif', jpg'}; %define allowed extensions yourself
%option 2:
registry = imformats; %get all image type supported by matlab
extensions = [registry.ext]; %and get their extensions
allfiles = dir(fullfile(somepath, '*.*'));
isimage = arrayfun(@(f) ~f.isdir && any(strcmp(regexp(f.name, '\.(.*)$', 'tokens', 'once'), extensions')), allfiles);
imagefiles = allfiles(isimage);
for imagefile = imagefiles'
Im = imread(fullfile(somepath, imagefile.name));
...
end
  1 Commento
Siam
Siam il 21 Ott 2014
Modificato: Siam il 21 Ott 2014
Now I can process using the second option for my images and it is working.
Thank you very much.

Accedi per commentare.

Più risposte (1)

Image Analyst
Image Analyst il 21 Ott 2014
Try this snippet:
ImageFiles = dir([handles.imageFolder '\*.*']);
for Index = 1:length(ImageFiles)
baseFileName = ImageFiles(Index).name;
[folder, name, ext] = fileparts(baseFileName);
ext = upper(ext);
if strcmpi(name, 'contours')
continue;
end
% Allow only tif, JPG, PNG, or BMP
if strcmpi(ext, '.TIF') == 1 || strcmpi(ext, '.JPG') == 1 || strcmpi(ext, '.TIF') == 1 if strcmp(ext, '.PNG') == 1
% if strcmp(baseFileName, '.') == 0 && strcmp(baseFileName, '..') == 0 && strcmp(baseFileName, 'Thumbs.db') == 0
ListOfImageNames = [ListOfImageNames baseFileName];
end
end
  5 Commenti
Image Analyst
Image Analyst il 24 Ott 2014
You're welcome. As you figured out folder is just your directory, which you called imgPath, so it's
tiffFiles = dir(fullfile(imgPath, '*.tif'))
pngFiles = dir(fullfile(imgPath, '*.png'))
jpgFiles = dir(fullfile(imgPath, '*.jpg'))
bmpFiles = dir(fullfile(imgPath, '*.bmp'))
allImageFiles = [tiffFiles; pngFiles; jpgFiles; bmpFiles]
If you like the code, you can "Vote" for my answer.
Siam
Siam il 11 Nov 2014
Sorry for the delay Image Analyst. This one also works. Great help. Ty.

Accedi per commentare.

Categorie

Scopri di più su Environment and Settings in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by