マトリックス内のサブマトリックスとして保存される複数のpngファイルで構成されるマトリックスを取るプログラムを作成しようとしています。image_1、image_2などとして保存された同じサイズの10個のpngファイルがあり、後でループで各画像を個別に処理できるようにしたいと考えています。これを行うには 3D マトリックスを作成するのが最善の方法ですか? もしそうなら、後で上記の目的でどのように使用しますか?
質問する
224 次
2 に答える
0
単純に画像から 3D マトリックスを作成したい場合は、次の行に沿って何かを行うことができます。
>> image_1 = rand(5);
>> image_2 = rand(5);
>> [m, n] = size(image_1);
>> images = zeros(m, n, 2);
>>
for ii=1:2
eval(sprintf('images(:,:,%d) = image_%d;', ii, ii));
end
>>
結果は次のようになります。
>> images
images(:,:,1) =
0.9037 0.0305 0.6099 0.1829 0.1679
0.8909 0.7441 0.6177 0.2399 0.9787
0.3342 0.5000 0.8594 0.8865 0.7127
0.6987 0.4799 0.8055 0.0287 0.5005
0.1978 0.9047 0.5767 0.4899 0.4711
images(:,:,2) =
0.0596 0.0967 0.6596 0.4538 0.1734
0.6820 0.8181 0.5186 0.4324 0.3909
0.0424 0.8175 0.9730 0.8253 0.8314
0.0714 0.7224 0.6490 0.0835 0.8034
0.5216 0.1499 0.8003 0.1332 0.0605
>>
後で個々の変数が不要であると感じた場合はimage_ii
、次のように単純にクリアできます。
>>
for ii=1:2
eval(sprintf('clear image_%d;', ii));
end
>>
images(:,:,1)
新しい 3D マトリックスは、後で などとして使用できますimages(4,3,2)
。
于 2013-05-11T07:43:22.860 に答える