How to use different file format in MATLAB
5 ビュー (過去 30 日間)
古いコメントを表示
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.
0 件のコメント
採用された回答
Guillaume
2014 年 10 月 21 日
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 件)
Image Analyst
2014 年 10 月 21 日
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 件のコメント
Image Analyst
2014 年 10 月 24 日
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.
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!