2017-11-26 16 views
0

私は、1冊のフォルダに保存された猫と犬の25000枚の画像を与えられたmatlab割り当てを割り当てられました。私の質問は、matlabのimagedatastore関数を使って、これらのファイルを2つのラベル(猫と犬)を含む1つの変数に格納する方法です。ファイルに保存されている各画像は、次の形式に従います。 cat.1.png、 cat.2.png、 .....、 cat.N.png、 dog.1.png、 dog.2 .png、 .....、 dog.N.png、Matlab:画像名に基づいて1つのファイルに保存された画像にラベルを付ける

理想的には、イメージ名に基づいてラベルを付けることが、おそらくこれに最適なアプローチになると思います。どのように私は様々な実装方法を使用してこれを行うには飽き飽きしましたが、私は失敗し続けます。これについてのアドバイスは大変ご満足いただけます!両方の画像データを格納するための

答えて

1

手順は同じです:

  1. dirと一致する名前を持つすべての画像ファイルを検索します。
  2. fullfileを使用してこれらのファイルへの完全パスを再構築します。
  3. ファイルを使用してイメージデータストアを作成します。

私のコードでは、イメージが格納されているのと同じフォルダでスクリプトを実行していることを前提としています。ここでは、コードは次のとおりです。

cats = dir('cat.*.png'); 
files_cats = fullfile({cats.folder}.', {cats.name}.'); 
imds_cats = imageDatastore(files_cats); 

dogs = dir('dog.*.png'); 
files_dogs = fullfile({dogs.folder}.', {dogs.name}.'); 
imds_dogs = imageDatastore(files_dogs); 

また、短いパスを使用することができます。

imds_cats = imageDatastore('cat.*.png'); 
imds_dogs = imageDatastore('dog.*.png'); 

フォルダ名を使用せずに(その中にカテゴリに単一の画像データストアと分割ファイルを使用したい場合は、すべてのファイル)を同じディレクトリに配置されているように見えるので、:

cats = dir('cat.*.png'); 
cats_labs = repmat({'Cat'},numel(cats),1); 

dogs = dir('dog.*.png'); 
dogs_labs = repmat({'Dog'},numel(dogs),1); 

labs = [cats_labs; dogs_labs]; 
imds = imageDatastore({'cat.*.png' 'dog.*.png'},'Labels',labs); 
+0

は、代わりに(imds_cats&とimds_dogs)2画像データストア変数を使用しての私はちょうど1が、独立した目でそれを格納することができ、そのとにかくありラベルのプロパティを使ってカテゴリー別に猫や犬を飼っていますか? –

+0

確かに、それはやや難解です。私は答えの一番下にそのコードを追加しました。 –

+0

ようこそ。私の答えがあなたを助けたら、受け入れられたと印を付けてください:) –

関連する問題