空间数据文件(.png)如何将多个.png文件到文件.MAT
001.png
002.png
003.png
.
.
.
00n.png
转换为
001.mat
002.mat
003.mat
.
.
.
00n.mat
空间数据文件(.png)如何将多个.png文件到文件.MAT
001.png
002.png
003.png
.
.
.
00n.png
转换为
001.mat
002.mat
003.mat
.
.
.
00n.mat
补充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得到了以下错误:
??? Error using ==> imread at 387 Unable to determine the file format. Error in ==> PNG2MATFiles at 5 A = imread(filenames(i).name);
我已经下载了原*并使用file
linux命令对其进行测试。我的输出:
FY2E_2011_09_01_00_01_ir1_proj.png: Matlab v5 mat-file (little endian) version 0x0100 FY2E_2011_09_01_01_01_ir1_proj.png: Matlab v5 mat-file (little endian) version 0x0100 FY2E_2011_09_01_02_01_ir1_proj.png: Matlab v5 mat-file (little endian) version 0x0100 FY2E_2011_09_01_03_01_ir1_proj.png: Matlab v5 mat-file (little endian) version 0x0100 FY2E_2011_09_01_04_01_ir1_proj.png: Matlab v5 mat-file (little endian) version 0x0100 FY2E_2011_09_01_05_01_ir1_proj.png: Matlab v5 mat-file (little endian) version 0x0100 FY2E_2011_09_01_06_01_ir1_proj.png: Matlab v5 mat-file (little endian) version 0x0100 FY2E_2011_09_01_07_01_ir1_proj.png: Matlab v5 mat-file (little endian) version 0x0100 FY2E_2011_09_01_08_01_ir1_proj.png: Matlab v5 mat-file (little endian) version 0x0100 FY2E_2011_09_01_09_01_ir1_proj.png: Matlab v5 mat-file (little endian) version 0x0100 FY2E_2011_09_01_10_01_ir1_proj.png: Matlab v5 mat-file (little endian) version 0x0100
imread
无法打开这些文件'png'
,因为它们已经被存储为.mat
。
试试这个:
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
出于好奇,做这件事有什么意义/好处? – jmetz 2012-08-08 20:36:50
,或者将我的问题放在上下文中:'png'是一种通用格式,而'mat'则可以缩略图和与其他软件的互操作性。将一个图像保存在一个'mat'文件中可以让你...稍微快点加载到matlab中(这就是它!)。这两种格式都使用无损压缩。 – jmetz 2012-08-08 20:51:25