【发布时间】:2015-04-04 14:59:50
【问题描述】:
我正在使用以下代码从计算机上的文件夹中将一系列 .png 图像读入 matlab:
datapath = dirname;
i = 1;
myFolder = dirname;
if ~isdir(myFolder)
errorMessage = sprintf('Error: The following folder does not exist:\n%s', myFolder);
uiwait(warndlg(errorMessage));
return;
end
filePattern = fullfile(myFolder, '*.png');
pngFiles = dir(filePattern);
for k = 1:length(pngFiles)
baseFileName = pngFiles(k).name;
fullFileName = fullfile(myFolder, baseFileName);
imageArray{i} = double(imread(fullFileName))/255;
%imshow(imageArray{i});
i = i+1;
end
我正在阅读的每个 png 都是 1024x800。但是,当我在使用调试器时将鼠标悬停在 imageArray{i} 上时,我被告知图像的尺寸为 800x1024x3!首先,行和列是如何混淆的?其次,为什么我的 2D 图像被赋予了额外的维度?奇怪的是,当在 imageArray{i} 上调用 imshow 时,它会显示一个完全正常的图像。这是怎么回事?
谢谢!
【问题讨论】: