Чтение изображений из файла в MATLAB - PullRequest
3 голосов
/ 21 июля 2009

У меня есть изображения BMP в папке изображений на моем компьютере. Я назвал его от 1.bmp до 100.bmp.

И я хочу прочитать эти изображения так:

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

Но Матлаб дал ошибку. Как я могу это реализовать?

Ответы [ 6 ]

9 голосов
/ 21 июля 2009

Вы можете использовать sprintf функцию

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

Подробнее об обработке строк вы можете прочитать в matlab здесь

5 голосов
/ 21 июля 2009

Создать s следующим образом:

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

Кроме того, ваш цикл будет просто перезаписывать A, поэтому вместо этого вам нужно будет сделать его массивом ячеек для хранения всех 100 изображений. Сделайте это вне вашей петли:

A = cell(1,100);

и затем загрузите ваши изображения в цикле так:

A{i} = imread(s);
3 голосов
/ 21 июля 2009

Дай угадаю. у вас нет файлов с именем C:\images1.bmp. О, это не ошибка, которую вы получаете, но она будет следующей, как только вы последуете совету ypnos .

2 голосов
/ 13 марта 2010
imgfiles=dir('c:\images\*.*');
for k=1:length(imgfiles)
  ...
end 
1 голос
/ 11 марта 2012

Добавьте вашу папку в путь к каталогу matlab и выполните следующие команды.

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

Я использую эти команды для чтения файлов изображений.

0 голосов
/ 28 марта 2015
>  for i=1:100
>      s=strcat('C:\images',num2str(i),'.bmp');
>      try                                                  
>        A=imread(s);
>      catch
>      end 
>    end

здесь я использую num2str, который используется для преобразования типа данных числа в строку, и я использую try для предотвращения ошибки, потому что, если файл не существует, он будет избегать этой ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...