データベース・大量の画像ファイルの読み込み
大量のデータをMatlabで読み込む際,ファイルが1つや2つならともかく何千個もある場合はtextreadやimreadを何千行も書くわけにはいかない.簡単な方法を思いついたのでメモ.
まず,端末上でデータの収まっているディレクトリに移動し,ファイルのリストを作る.なお,目的のデータ以外のファイルがあった場合は,list.txtから適当に削除する.
$ls > list.txt
次にmatlabのタブからFile→Import Dataを選択.これで,listという変数が作られる.変数型はCell,で中身は文字列でファイル名が収まっている.mファイルに書いて,バッチ処理をしたい場合は次のように書けばよい.
list = importdata('list.txt');
後は
>>img(1)=imread(list{1},'png');
という形で読み込める.これを利用して変数に格納し,扱いやすい形にしたらmatファイルにして保存.これでデータベースをmatlabで扱いやすい形に変換できる.コードを走らせる際は作成したmatファイルを利用する.
コードで一括で行う際は
for i=1:end img(i) = imread(list{i},'png'); end
endのところをlength(list)にした方が良い気もする.