Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

imageDatastore

イメージ データのデータ ストア

説明

個々のイメージはメモリに収まるが、イメージの集合全体が必ずしもメモリに収まるとは限らない場合、イメージ ファイルの集合を管理するにはImageDatastoreオブジェクトを使用します。関数imageDatastoreを使用してImageDatastoreオブジェクトを作成し、そのプロパティを指定すると、オブジェクト関数を使用してデータのインポートおよび処理ができます。

作成

説明

imds= imageDatastore(location)は、locationで指定されたイメージ データの集合からデータ ストアimdsを作成します。

imds= imageDatastore(location,Name,Value)は、1 つ以上の名前と値のペアの引数を使用して、imdsの追加パラメーターとプロパティを指定します。

入力引数

すべて展開する

データ ストアに含めるファイルまたはフォルダー。パスまたはDsFileSetオブジェクトとして指定します。

  • パス — ローカルやリモートのファイルまたはフォルダーの場所を含む文字ベクトル、文字ベクトルの cell 配列、string スカラー、または string 配列としてパスを指定します。

    • ローカルのファイルまたはフォルダー — ファイルまたはフォルダーのローカル パスとしてlocationを指定します。ファイルが現在のフォルダーに存在しない場合、ローカル パスは絶対パスまたは相対パスを指定しなければなりません。指定したフォルダーのサブフォルダー内にあるファイルは、自動ではデータ ストアに含まれません。ローカル パスを指定するときにワイルドカード文字 (*) を使用できます。この文字は、一致するフォルダー内にある、すべてのファイルまたは一致するすべてのファイルをデータ ストアに含めることを指定します。

    • リモートのファイルまたはフォルダー —locationhdfs:///path_to_fileの形式の Uniform Resource Locator (URL) として、ファイルまたはフォルダーの絶対パスに指定します。詳細については、リモート データの操作を参照してください。

  • DsFileSetオブジェクト —locationDsFileSetオブジェクトとして指定することもできます。詳細については、matlab.io.datastore.DsFileSetを参照してください。

locationがフォルダーを表す場合、データ ストアにはサポートされているファイル形式のみが含まれ、その他の形式は無視されます。データ ストアに含めるファイル拡張子のカスタム リストを指定するには、FileExtensionsプロパティを参照してください。

関数imageDatastoreは、imformats形式のファイルをサポートします。

例:'file1.jpg'

例:'../dir/data/file1.png'

例:{'C:\dir\data\file1.tif','C:\dir\data\file2.tif'}

例:'C:\dir\data\*.jpg'

名前と値のペアの引数

オプションのName,Valueの引数ペアをコンマ区切りで指定します。Nameは引数名で、Valueは対応する値です。Nameは引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueNのように、複数の名前と値のペアの引数を任意の順序で指定できます。

例:imds = imageDatastore('C:\dir\imagedata','FileExtensions',{'.jpg','.tif'})

サブフォルダーを含めるかどうかのフラグ。'IncludeSubfolders'と、trueまたはfalseのいずれかで構成されるコンマ区切りのペアとして指定します。各フォルダー内のすべてのファイルとサブフォルダーを含めるにはtrueを指定し、各フォルダー内のファイルのみを含めるにはfalseを指定します。

'IncludeSubfolders'を指定しない場合、既定値はfalseです。

例:'IncludeSubfolders',true

データ型:logical|double

イメージ ファイル拡張子。'FileExtensions'と、文字ベクトル、文字ベクトルの cell 配列、string スカラーまたは string 配列で構成されるコンマ区切りのペアとして指定します。指定された拡張子にimformats型式は不要であり、空の引用符''を使用して、拡張子なしでファイルを表すことができます。'FileExtensions'を指定しない場合、imageDatastoreは、指定パス上のimformats拡張子をもつすべてのイメージを自動的に含めます。imformatsで認識されない拡張子を含める場合は、すべての拡張子を指定します。

例:'FileExtensions','.jpg'

例:'FileExtensions',{'.jpg','.png'}

データ型:char|cell|string

代替ファイル システムのルート パス。'AlternateFileSystemRoots'と string ベクトルまたは cell 配列で構成されるコンマ区切りのペアとして指定します。ローカル マシン上にデータ ストアを作成するが、別のマシン (異なるオペレーティング システムの可能性がある) 上でデータにアクセスして処理する必要がある場合は、'AlternateFileSystemRoots'を使用します。また、Parallel Computing Toolbox™ とMATLAB®Parallel Server™を使用してデータを処理し、そのデータがローカル マシンに保存され、そのデータのコピーが異なるプラットフォームのクラウドやクラスター マシンにある場合、'AlternateFileSystemRoots'を使用してルート パスを関連付けなければなりません。

  • 相互に対応する 1 組のルート パスを関連付けるには、'AlternateFileSystemRoots'を string ベクトルとして指定します。以下に例を示します。

    ["Z:\datasets","/mynetwork/datasets"]

  • データ ストアに対応する複数の組のルート パスを関連付けるには、複数行を含む cell 配列として'AlternateFileSystemRoots'を指定します。各行は対応するルート パスの組を表します。cell 配列内の各行を string ベクトル、または文字ベクトルの cell 配列のいずれかとして指定します。以下に例を示します。

    • 'AlternateFileSystemRoots'を string ベクトルの cell 配列として指定します。

      {["Z:\datasets", "/mynetwork/datasets"];... ["Y:\datasets", "/mynetwork2/datasets","S:\datasets"]}

    • あるいは、'AlternateFileSystemRoots'を文字ベクトルの cell 配列からなる cell 配列として指定します。

      {{'Z:\datasets','/mynetwork/datasets'};... {'Y:\datasets', '/mynetwork2/datasets','S:\datasets'}}

'AlternateFileSystemRoots'の値は、次の条件を満たさなければなりません。

  • 1 行以上の行を含み、各行は 1 組の対応するルート パスを指定する。

  • 各行は複数のルート パスを指定し、各ルート パスは 2 文字以上を含まなければならない。

  • ルート パスは一意で、他のルート パスのサブフォルダーではない。

  • ファイルの場所を指す 1 つ以上のルート パス エントリを含む。

詳細については、異なるマシンまたはクラスターで処理するためのデータ ストアの設定を参照してください。

例:["Z:\datasets","/mynetwork/datasets"]

データ型:string|cell

ラベル データを提供するソース。'LabelSource'と、'none'または'foldernames'のいずれかで構成されるコンマ区切りのペアとして指定します。'none'を指定した場合、Labelsプロパティは空になります。'foldernames'を指定した場合、フォルダー名に従ってラベルが割り当てられ、Labelsプロパティに格納されます。後でLabelsプロパティに直接アクセスして、ラベルを変更できます。

データ型:char|string

これらの名前と値のペアに加えて、このページの任意のプロパティも名前と値のペアとして指定できます。ただし、Filesプロパティを除きます。

プロパティ

すべて展開する

ImageDatastoreプロパティはデータを記述し、データ ストアからデータを読み取る方法を指定します。datastore オブジェクトの作成時に、名前と値のペアの引数を使用してImageDatastoreプロパティの値を指定できます。オブジェクトの作成後にプロパティの表示または変更を行うには、ドット表記を使用します。

たとえば、ImageDatastoreオブジェクトを作成して、'ReadFcn'パラメーターを指定できます。

imds = imageDatastore('peppers.png','ReadFcn',@customreader);
あるいは、ImageDatastoreの作成後に'ReadFcn'@customreaderに割り当てることができます。
imds = imageDatastore('peppers.png'); imds.ReadFcn = @customreader;

データ ストアに含まれるファイル。文字ベクトル、文字ベクトルの cell 配列、string スカラーまたは string 配列として解決されます。各文字ベクトルまたは string はファイルへの絶対パスです。関数imageDatastoreおよび関数数据存储location引数は、データ ストアの作成時にFilesを定義します。

例:{'C:\dir\data\file1.jpg';'C:\dir\data\file2.jpg'}

データ型:char|cell|string

このプロパティは読み取り専用です。

データストアの作成に使用するフォルダー。文字ベクトルの cell 配列として返されます。cell 配列は列ベクトルとして方向付けされます。各文字ベクトルは、データ ファイルを含むフォルダーへのパスです。関数imageDatastoreおよび関数数据存储location引数は、データストアの作成時にFoldersを定義します。

データ型:cell

関数readの呼び出しで読み取るイメージ ファイルの数。正の整数スカラーとして指定します。関数readの各呼び出しで、最大ReadSize個のイメージを読み取ります。

データ ストア内のファイルのラベル。ベクトル、cell 配列または string 配列として指定します。配列内のラベルの順序は、データ ストア内の関連付けられたファイルの順序に対応します。ImageDatastoreオブジェクトの作成時に'LabelSource','foldernames'を指定した場合、ファイルのラベル名はそのファイルを含むフォルダーの名前になります。'LabelSource','foldernames'を指定しない場合、Labelsは空の cell 配列または string 配列です。データ ストアの作成後にFilesプロパティを変更した場合、追加されたファイルを含めるようにLabelsプロパティが自動更新されることはありません。

データ型:categorical|cell|logical|double|single|string

イメージ データを読み取る関数。関数ハンドルとして指定します。関数はイメージ ファイル名を入力として受け取らなければならず、その後に対応するイメージ データを出力します。たとえば、customreaderがイメージ データを読み取る関数として指定された場合、この関数には次のようなシグネチャがなければなりません。

function data = customreader(filename) ... end
複数の出力引数が存在する場合、imageDatastoreは最初の引数のみを使用して、残りの引数を無視します。

メモ

2 次元イメージの変換または前処理にReadFcnを使用することは推奨されません。imformatsの認識するファイル形式について、ReadFcnを指定するとimageDatastoreのパフォーマンスが遅くなります。イメージの変換および前処理の効率的な方法の詳細については、イメージの深層学習向け前処理(Deep Learning Toolbox)を参照してください。

例:@customreader

データ型:function_handle

このプロパティは読み取り専用です。

書き込みでサポートされる形式のリスト。string の行ベクトルとして返されます。このプロパティは、writeallを使用してデータストアから出力ファイルを書き込む際に使用可能な出力形式を指定します。

データ型:string

このプロパティは読み取り専用です。

既定の出力形式。string スカラーとして返されます。このプロパティは、writeallを使用してデータストアから出力ファイルを書き込む際の既定の形式を指定します。

データ型:string

オブジェクト関数

countEachLabel ImageDatastore ラベル内のファイルをカウントする
hasdata データが読み取り可能かどうかを判別
numpartitions データ ストアの区画数
partition データ ストアを分割する
preview データストア内のデータのサブセットをプレビュー
read データ ストアのデータの読み取り
readall データ ストアのすべてのデータの読み取り
readimage 指定されたイメージをデータ ストアから読み取る
writeall ファイルへのデータストアの書き込み
reset データ ストアの初期状態へのリセット
shuffle データストア内のすべてのデータをシャッフルする
splitEachLabel ImageDatastore のラベルを比率で分割
subset データ ストアまたはファイル セットのサブセットを作成
transform データストアの変換
combine 複数のデータ ストアのデータを統合
isPartitionable データストアが分割可能かどうかを判別
isShuffleable データストアがシャッフル可能かどうかを判別

すべて折りたたむ

MATLAB® パスおよびそのサブフォルダー内にあるすべての.tifファイルに関連付けられたImageDatastoreオブジェクトを作成します。フォルダー名をラベル名として使用します。

imds = imageDatastore(fullfile(matlabroot,'toolbox','matlab'),...'IncludeSubfolders',true,'FileExtensions','.tif','LabelSource','foldernames')
imds = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\example.tif'; ' ...\matlab\toolbox\matlab\imagesci\corn.tif' } Labels: [demos; imagesci] ReadSize: 1 ReadFcn: @readDatastoreImage

4 つのイメージを含むImageDatastoreオブジェクトを作成し、最初のイメージをプレビューします。

imds = imageDatastore({'street1.jpg',“street2.jpg”,'peppers.png','corn.tif'})
imds = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\street1.jpg'; ' ...\matlab\toolbox\matlab\demos\street2.jpg'; ' ...\matlab\toolbox\matlab\imagesci\peppers.png' ... and 1 more } ReadSize: 1 Labels: {} ReadFcn: @readDatastoreImage
imshow(preview(imds));

2 番目と 3 番目のイメージのみを 1 つずつ読み取ります。

fori = 2:3 img = readimage(imds,i);end

イメージを 4 つすべて読み取り、3 番目のイメージを表示します。

imgs = readall(imds); imshow(imgs{3})

制限

  • 2 次元イメージの変換または前処理にReadFcnを使用することは推奨されません。imformatsの認識するファイル形式について、ReadFcnを指定するとimageDatastoreのパフォーマンスが遅くなります。イメージの変換および前処理の効率的な方法の詳細については、イメージの深層学習向け前処理(Deep Learning Toolbox)を参照してください。

R2015b で導入