Я работаю над проблемой машинного обучения классификации различных типов листьев с использованием набора данных flavia. У меня есть папка набора данных, в которой есть 32 подпапки, каждая из которых содержит некоторые изображения соответствующего класса. Изображения имеют серого размера 4096x1. Как я могу загрузить все эти изображения из всех подпапок одновременно, а затем создать файл csv из сохраненных значений пикселей?Создание файла csv путем загрузки нескольких изображений в matlab
0
A
ответ
0
Создать массив ячеек со всеми именами файлов, например.
C{1} = '/path/to/file1.png';
C{2} = '/path/to/file2.png';
и т.д. (есть несколько способов сделать это автоматически, но, учитывая, у меня нет никакой информации о вашей файловой структуре, и есть не так много файлов, давайте пропустить этот шаг.)
Тогда есть a для петли
for n = 1 : 32
I = imread(C{n});
csvwrite('my_csv_file.csv', I(:).', '-append');
end
PS. Синтаксис (:).'
гарантирует, что каждое изображение становится строкой.
На самом деле у меня есть 32 подпапки с именем конкретного типа листа. Напр. в папке с названием китайский тюльпан будет представлено около 60-70 изображений китайского тюльпана. Таким образом, это 32 папки, каждая из которых содержит 60-70 изображений. Таким образом, набор данных в общей сложности имеет около 2000 изображений. Невозможно создать массив ячеек для каждого изображения отдельно. Как я могу решить эту проблему? – user564650
вы можете использовать 'readdir' для создания массивов ячеек –