1

現在私が持っているスクリプトは、ディレクトリにあるすべての写真を取り込み、100 個の画像があるため、m1、m2、m3 ...... m100 として作業スペースに保存します。コードは次のとおりです。

A=dir; 
for n=3:length(A)   %it starts with 3 because the first 2 entries in the dir are . and ..
eval(['m' num2str(n) '=imread(A(n).name);']);
end

シンプルでいい!ただし、各画像に移動してサイズを変更したいのですが、現時点では手動で行う必要があり、すべての画像マトリックスをループする関数を作成する方法を誰かが知っているかどうか疑問に思っていました(最初に m1 、次にm2 など)、それぞれのサイズを変更します。それらはすべて最初の画像のサイズである必要があります。これは私がこれまでに持っているものですが、時間がかかるため、将来さらに多くの画像をロードしたいと考えています:

[a b c]=size(m1);
p1=m1
p2 = imresize(m2, [a b]);
p3 = imresize(m3, [a b]);
p4 = imresize(m4, [a b]);
p5 = imresize(m5, [a b]);

どんな助けでも大歓迎です。

ありがとう。

4

2 に答える 2

3

次のように、セル配列を使用して簡単に行うことができます

A=dir; 
img = cell(length(A)-2,1);
img_rz = cell(length(A)-2,1);
for n=3:length(A)   
    img{n} = imread(A(n).name);
    img_rz{n} = imresize(img{n},[a b]);
end
于 2013-01-23T00:51:02.640 に答える
1

あなたはあなた自身のコードでそれを行うことができます:(ほぼ)

A=dir; 
a= ...; b= ...;
for n=3:length(A)   %it starts with 3 because the first 2 entries in the dir are . and ..
eval(['mresized' num2str(n) '=imresize(imread(A(n).name),[a b]);']);
end
于 2013-01-23T00:53:03.970 に答える