私はMファイルを書きました。このMファイルを複数のイメージで実行してから、個別に名前を付けて出力.tifイメージを書き込みたいと思います。これを行う簡単な方法はありますか?
みんなありがとう
私はMファイルを書きました。このMファイルを複数のイメージで実行してから、個別に名前を付けて出力.tifイメージを書き込みたいと思います。これを行う簡単な方法はありますか?
みんなありがとう
ベスト プラクティスは、関数を記述することです。
function img( inputName, outputName )
if ~iscell(inputName)
img( {inputName}, {outputName} );
return;
end
for ii = 1:numel(inputName)
im = imread(inputName{ii});
...
[do operations on im]
...
imwrite(im, outputName{ii}, 'tiff');
end
end
次のように、スクリプト、クラス、関数、またはコマンド ウィンドウから呼び出すことができます。
img(...
{'file1.bmp', 'file2.bmp', ...},...
{'file1.tif', 'file2.tif', ...}...
);
次のように入力ファイル名を取得できます。
[filename, pathname] = uigetfile( ...
{'*.bmp','bitmap-files (*.bmp)'; ...
'*.*', 'All Files (*.*)'}, ...
'Pick a file', ...
'MultiSelect', 'on');
あなたが使用できるように
if filename ~= 0
img(...
[char(pathname) char(filename)],
{'file1.tif', 'file2.tif', ...}...
);
else
error('No file selected.');
end
これは、入力ファイル名をより適切にリサイクルできることをすでに示しています。
function img( fileNames )
... % function's mostly the same, except:
[pth,fname] = fileparts(fileNames{ii});
imwrite(im, [pth filesep fname '.tif'], 'tiff');
end
または、 を使用する際の利便性を高めるためにuigetfile
、
if filename ~= 0
img(pathname, filename);
else
error('No file selected.');
end
と
function img( pathnames, filenames)
if ~iscell(pathnames)
img( {pathnames}, {filenames} );
return;
end
for ii = 1:numel(pathnames)
im = imread([pathnames{ii} filenames{ii}]);
...
[do operations on im]
...
[~,basename] = fileparts(filenames{ii});
imwrite(im, [basename '.tif'], 'tiff');
end
end