1

空間データ(.png)

001.png
002.png
003.png
.
.
.
00n.png

001.mat
002.mat
003.mat
.
.
.
00n.mat
4

2 に答える 2

3

次のようなファイル名制限のないファイルがある場合は、EitanTの回答を補完します。

file01.png
file02.png
fls1.png
fls2.png
pics001.png
pics002.png

dir柔軟性の高い関数を使用できます。例えば:

filenames = dir('*.png'); %# get information of all .png files in work dir
n  = numel(filenames);    %# number of .png files

for i = 1:n
    A = imread( filenames(i).name );

    %# gets full path, filename radical and extension
    [fpath radical ext] = fileparts( filenames(i).name ); 

    save([radical '.mat'], 'A');                          
end

filepartsファイルパス、部首、拡張子のファイル名を分解するMATLAB関数です。たとえば、ファイルがある場合/home/user/photo.png、この関数は次を返します。

fpath   = /home/user
radical = photo
ext     = .png

ファイル形式エラー

OPで次のエラーが発生しました。

??? ==> imreadat387の使用中にエラーが発生しました。ファイル形式を判別できません。==> 5AでのPNG2MATFilesのエラー=imread(filenames(i).name);

彼のオリジナルの*.png画像をダウンロードし、fileLinuxコマンドでテストしました。私の出力:

FY2E_2011_09_01_00_01_ir1_proj.png:Matlab v5 mat-file(リトルエンディアン)バージョン0x0100 FY2E_2011_09_01_01_01_ir1_proj.png:Matlab v5 mat-file(リトルエンディアン)バージョン0x0100 FY2E_2011_09_01_02_01_ir1_pro v5 mat-file(リトルエンディアン)バージョン0x0100 FY2E_2011_09_01_04_01_ir1_proj.png:Matlab v5 mat-file(リトルエンディアン)バージョン0x0100 FY2E_2011_09_01_05_01_ir1_proj.png:Matlab v5 mat-file(リトルエンディアン)バージョン0x0100 FY01_リトルエンディアン)バージョン0x0100 FY2E_2011_09_01_07_01_ir1_proj.png:Matlab v5 mat-file(リトルエンディアン)バージョン0x0100 FY2E_2011_09_01_08_01_ir1_proj.png:Matlab v5 mat-file(リトルエンディアン)バージョン0x0100 FY2E_2011_09_01Matlab v5マットファイル(リトルエンディアン)バージョン0x0100 FY2E_2011_09_01_10_01_ir1_proj.png:Matlab v5マットファイル(リトルエンディアン)バージョン0x0100

imread'png'これらのファイルはすでにとして保存されているため、開くことができません.mat

于 2012-08-08T21:06:21.083 に答える
2

これを試して:

for i = 1:n
    A = imread(['00', num2str(i), '.png'], 'png');  %# Read PNG file
    save(['00', num2str(i), '.mat'], 'A');          %# Store data to MAT file
end
于 2012-08-08T20:22:22.390 に答える