1

1.jpg、2.jpg、3.jpg などの名前のディレクトリにたくさんの画像があります。それらを 1 つずつ読み取ります。いくつかの操作を行ってから、それらを保存します。

この作業を自動化したい。画像の名前が読めます。次に、出力ファイルを生成するときに、入力ファイル名から image_name を抽出し、必要な拡張子名を追加し、保存するファイルの種類を追加してから、印刷コマンドで画像を保存します。

%//Read the image
imagefiles = dir('*.bmp');      
nfiles = length(imagefiles);    % Number of files found
for ii=1:nfiles
    currentfilename = imagefiles(ii).name;
    currentimage = imread(currentfilename);
    images{ii} = currentimage;
    Img=currentimage;

    %//Do some operation on the image

    %//Save the image file
    h=figure;
    %//Display the figure to be saved  
    token = strtok(currentfilename, '.');
    str1 =  strcat(token,'_op');
    print(h,'-djpeg',str1);
end

このプログラムは正常に動作しますが、美しいグラフをプロットするこのコマンドについて知りました。export_fig

export_fig次の形式で基本的なコマンドを実行します。

export_fig file_name.file_type

export_fig コマンドの file_name プレースホルダーの代わりに str1 として保存されている出力ファイル名を自動的に置き換えるにはどうすればよいですか。

注: export_fig ドキュメントからこれに注意してください (変数ファイル名について)

for a = 1:5
plot(rand(5, 2));
export_fig(sprintf('plot%d.png', a));
end

私はこの解決策を望んでいません。export_fig基本的なステートメントで指定されているように、データを入力する必要がある何千もの MATLAB 関数があるという私の質問を理解してください。変数ファイル名に関する特殊なケースは、export_fig 関数内で既に構築されています。

ビルドされていないかどうかを知りたいのですが、自動生成された変数ファイル名をどのように使用できたのでしょうか? 私のクエリは特に export_fig に関するものではなく、入力が文字列にできない場合に可変ファイル名を指定できる基本的な方法に関するものですか?

質問の意味がわかりにくい場合は質問してください。

4

1 に答える 1