2009-07-21 106 views
3

我在我的电脑上的图像文件夹中有bmp图像。我将它从1.bmp命名为100.bmp从MATLAB中的文件读取图像

我想读这些图像是这样的:

for i=1:100 
    s='C:\images'+i+'.bmp'; 
    A=imread(s); 
end 

但Matlab的给了一个错误。我怎样才能实现这个?

+1

yalcin,停止它。这是一个初学者的问题,应该相应标记。在提问或回答初学者的问题上毫不羞愧。 – SilentGhost 2009-07-21 14:48:13

回答

3

让我猜。您没有名为C:\images1.bmp的文件。哦,那不是你得到的错误,但是一旦你按照ypnos's advice,它将成为下一个错误。

+0

: - ) – 2009-07-21 13:24:39

+0

对额外错误的好评,但ypnos的答案实际上不起作用。 ;) – gnovice 2009-07-21 14:03:22

+1

@gnovice:错误消息将是相同的;) – SilentGhost 2009-07-21 14:07:11

9

可以使用sprintf功能

s = sprintf('c:\images%d.bmp', i); 
A = imread(s); 

你可以阅读更多关于字符串在MATLAB处理here

5

通过以下方式创建s

s = ['C:\images\' int2str(i) '.bmp']; 

此外,你的循环会简单保持覆盖A,所以你将不得不使它成为cell array来存储全部100个ima水电站。这样做你的外循环:

A = cell(1,100); 

,然后加载图片的循环,像这样:

A{i} = imread(s); 
2
imgfiles=dir('c:\images\*.*'); 
for k=1:length(imgfiles) 
    ... 
end 
1

您的文件夹添加到MATLAB的目录路径和运行下面的命令。

files=dir('*.bmp') for k=1:numel(files) I=imread(files(k).name); end

我使用这些命令来读取图像文件。

0
> for i=1:100 
>  s=strcat('C:\images',num2str(i),'.bmp'); 
>  try             
>  A=imread(s); 
>  catch 
>  end 
> end 

这里我使用的是用于数字的数据类型转换为字符串num2str,我使用拉升aviod错误,因为如果文件不存在那么它将aviod这个错误。