ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

spliteachlabel

ImageDatastore のラベルを比率で分割

説明

[imds1,imds2] = splitEachLabel(imds,p) は、imds 内のイメージ ファイルを 2 つの新しいデータ ストア imds1imds2 に分割します。新しいデータ ストア imds1 には各ラベルの最初から p 個のファイルが含まれ、imds2 には各ラベルの残りのファイルが含まれます。p には imds1 に割り当てる各ラベルのファイル数の比率を示す 0 ~ 1 の値、あるいは imds1 に割り当てる各ラベルのファイルの絶対数を示す整数を指定できます。

[imds1,...,imdsM] = splitEachLabel(imds,p1,...,pN) は、データ ストアを N+1 個の新しいデータ ストアに分割します。最初の新しいデータ ストア imds1 には各ラベルの最初から p1 個のファイルが含まれ、次の新しいデータ ストア imds2 には次の p2 個のファイルが含まれる、というように分割されます。p1,...,pN がファイル数を表す場合、その合計は元のデータ ストア imds の最小のラベル内にあるファイル数以下でなければなりません。

___ = splitEachLabel(___,'randomized') は、指定された比率のファイル数を各ラベルから新しいデータ ストアにランダムに割り当てます。

___ = splitEachLabel(___,Name,Value) は、1 つ以上の名前と値のペアの引数を使用して新しいデータ ストアのプロパティを指定します。たとえば、'Include','labelname' を使用して分割するラベルを指定できます。

すべて折りたたむ

ImageDatastore オブジェクトを作成し、イメージを含むフォルダーの名前に従って各イメージにラベルを付けます。結果のラベル名は demosimagesci になります。

imds = imageDatastore(fullfile(matlabroot, 'toolbox', 'matlab', {'demos','imagesci'}),...
'LabelSource', 'foldernames', 'FileExtensions', {'.jpg', '.png', '.tif'});

imds.Labels
ans = 

     demos 
     demos 
     demos 
     demos 
     demos 
     demos 
     imagesci 
     imagesci 

imds 内のファイルから新しいデータ ストアを 2 つ作成します。最初のデータ ストア imds60 には、demos ラベルをもつ最初から 60% のファイルと、imagesci ラベルをもつ最初から 60% のファイルが含まれます。2 番目のデータ ストア imds40 には、各ラベルの残り 40% のファイルが含まれます。ラベルに割合を適用した結果が整数のファイル数にならない場合、splitEachLabel は最も近い 0 または正の整数への切り捨てを行います。

[imds60,imds40] = splitEachLabel(imds,0.6)
imds60 = 

  ImageDatastore with properties:

      Files: {
             ' ...\matlab\toolbox\matlab\demos\cloudCombined.jpg';
             ' ...\matlab\toolbox\matlab\demos\example.tif';
             ' ...\matlab\toolbox\matlab\demos\landOcean.jpg'
              ... and 2 more
             }
     Labels: [demos; demos; demos ... and 2 more categorical]
    ReadFcn: @readDatastoreImage


imds40 = 

  ImageDatastore with properties:

      Files: {
             ' ...\matlab\toolbox\matlab\demos\street1.jpg';
             ' ...\matlab\toolbox\matlab\demos\street2.jpg';
             ' ...\matlab\toolbox\matlab\imagesci\peppers.png'
             }
     Labels: [demos; demos; imagesci]
    ReadFcn: @readDatastoreImage

ImageDatastore オブジェクトを作成し、イメージを含むフォルダーの名前に従って各イメージにラベルを付けます。結果のラベル名は demosimagesci になります。

imds = imageDatastore(fullfile(matlabroot, 'toolbox', 'matlab', {'demos','imagesci'}),...
'LabelSource', 'foldernames', 'FileExtensions', {'.jpg', '.png', '.tif'});

imds.Labels
ans = 

     demos 
     demos 
     demos 
     demos 
     demos 
     demos 
     imagesci 
     imagesci 

imds 内のファイルから新しいデータ ストアを 2 つ作成します。最初のデータ ストア imds1 には、demos ラベルをもつ最初のファイルと、imagesci ラベルをもつ最初のファイルが含まれます。2 番目のデータ ストア imds2 には、各ラベルの残りのファイルが含まれます。

[imds1,imds2] = splitEachLabel(imds,1)
imds1 = 

  ImageDatastore with properties:

      Files: {
             ' ...\matlab\toolbox\matlab\demos\cloudCombined.jpg';
             ' ...\matlab\toolbox\matlab\imagesci\corn.tif'
             }
     Labels: [demos; imagesci]
    ReadFcn: @readDatastoreImage


imds2 = 

  ImageDatastore with properties:

      Files: {
             ' ...\matlab\toolbox\matlab\demos\example.tif';
             ' ...\matlab\toolbox\matlab\demos\landOcean.jpg';
             ' ...\matlab\toolbox\matlab\demos\ngc6543a.jpg'
              ... and 3 more
             }
     Labels: [demos; demos; demos ... and 3 more categorical]
    ReadFcn: @readDatastoreImage

ImageDatastore オブジェクトを作成し、イメージを含むフォルダーの名前に従って各イメージにラベルを付けます。結果のラベル名は demosimagesci になります。

imds = imageDatastore(fullfile(matlabroot, 'toolbox', 'matlab', {'demos','imagesci'}),...
'LabelSource', 'foldernames', 'FileExtensions', {'.jpg', '.png', '.tif'});

imds.Labels
ans = 

     demos 
     demos 
     demos 
     demos 
     demos 
     demos 
     imagesci 
     imagesci 

imds 内のファイルから新しいデータ ストアを 3 つ作成します。最初のデータ ストア imds60 には、demos ラベルをもつ最初から 60% のファイルと、imagesci ラベルをもつ最初から 60% のファイルが含まれます。2 番目のデータ ストア imds10 には、各ラベルから次の 10% のファイルが含まれます。3 番目のデータ ストア imds30 には、各ラベルの残り 30% のファイルが含まれます。ラベルに割合を適用した結果が整数のファイル数にならない場合、splitEachLabel は最も近い 0 または正の整数への切り捨てを行います。

[imds60, imds10, imds30] = splitEachLabel(imds,0.6,0.1)
imds60 = 

  ImageDatastore with properties:

      Files: {
             ' ...\matlab\toolbox\matlab\demos\cloudCombined.jpg';
             ' ...\matlab\toolbox\matlab\demos\example.tif';
             ' ...\matlab\toolbox\matlab\demos\landOcean.jpg'
              ... and 2 more
             }
     Labels: [demos; demos; demos ... and 2 more categorical]
    ReadFcn: @readDatastoreImage


imds10 = 

  ImageDatastore with properties:

      Files: {
             ' ...\matlab\toolbox\matlab\demos\street1.jpg'
             }
     Labels: demos
    ReadFcn: @readDatastoreImage


imds30 = 

  ImageDatastore with properties:

      Files: {
             ' ...\matlab\toolbox\matlab\demos\street2.jpg';
             ' ...\matlab\toolbox\matlab\imagesci\peppers.png'
             }
     Labels: [demos; imagesci]
    ReadFcn: @readDatastoreImage

ImageDatastore オブジェクトを作成し、イメージを含むフォルダーの名前に従って各イメージにラベルを付けます。結果のラベル名は demosimagesci になります。

imds = imageDatastore(fullfile(matlabroot, 'toolbox', 'matlab', {'demos','imagesci'}),...
'LabelSource', 'foldernames', 'FileExtensions', {'.jpg', '.png', '.tif'});

imds.Labels
ans = 

     demos 
     demos 
     demos 
     demos 
     demos 
     demos 
     imagesci 
     imagesci 

imds 内のファイルから新しいデータ ストアを 3 つ作成します。最初のデータ ストア imds1 には、demos ラベルをもつ最初のファイルと、imagesci ラベルをもつ最初のファイルが含まれます。2 番目のデータ ストア imds2 には、各ラベルの次のファイルが 1 つ含まれます。3 番目のデータ ストア imds3 には、各ラベルの残りのファイルが含まれます。

[imds1, imds2, imds3] = splitEachLabel(imds,1,1)
imds1 = 

  ImageDatastore with properties:

      Files: {
             ' ...\matlab\toolbox\matlab\demos\cloudCombined.jpg';
             ' ...\matlab\toolbox\matlab\imagesci\corn.tif'
             }
     Labels: [demos; imagesci]
    ReadFcn: @readDatastoreImage


imds2 = 

  ImageDatastore with properties:

      Files: {
             ' ...\matlab\toolbox\matlab\demos\example.tif';
             ' ...\matlab\toolbox\matlab\imagesci\peppers.png'
             }
     Labels: [demos; imagesci]
    ReadFcn: @readDatastoreImage


imds3 = 

  ImageDatastore with properties:

      Files: {
             ' ...\matlab\toolbox\matlab\demos\landOcean.jpg';
             ' ...\matlab\toolbox\matlab\demos\ngc6543a.jpg';
             ' ...\matlab\toolbox\matlab\demos\street1.jpg'
              ... and 1 more
             }
     Labels: [demos; demos; demos ... and 1 more categorical]
    ReadFcn: @readDatastoreImage

ImageDatastore オブジェクトを作成し、イメージを含むフォルダーの名前に従って各イメージにラベルを付けます。結果のラベル名は demosimagesci になります。

imds = imageDatastore(fullfile(matlabroot, 'toolbox', 'matlab', {'demos','imagesci'}),...
'LabelSource', 'foldernames', 'FileExtensions', {'.jpg', '.png', '.tif'});

imds.Labels
ans = 

     demos 
     demos 
     demos 
     demos 
     demos 
     demos 
     imagesci 
     imagesci 

imds の各ラベルからランダムに抽出されたファイルから、新しいデータ ストアを 2 つ作成します。最初のデータ ストア imds1 には、demos のラベルをもつランダムなファイルが 1 つ、imagesci のラベルをもつランダムなファイルが 1 つ含まれます。2 番目のデータ ストア imds2 には、各ラベルの残りのファイルが含まれます。

[imds1, imds2] = splitEachLabel(imds,1,'randomized')
imds1 = 

  ImageDatastore with properties:

      Files: {
             ' ...\matlab\toolbox\matlab\demos\street2.jpg';
             ' ...\matlab\toolbox\matlab\imagesci\corn.tif'
             }
     Labels: [demos; imagesci]
    ReadFcn: @readDatastoreImage


imds2 = 

  ImageDatastore with properties:

      Files: {
             ' ...\matlab\toolbox\matlab\demos\cloudCombined.jpg';
             ' ...\matlab\toolbox\matlab\demos\example.tif';
             ' ...\matlab\toolbox\matlab\demos\landOcean.jpg'
              ... and 3 more
             }
     Labels: [demos; demos; demos ... and 3 more categorical]
    ReadFcn: @readDatastoreImage

ImageDatastore オブジェクトを作成し、イメージを含むフォルダーの名前に従って各イメージにラベルを付けます。結果のラベル名は demosimagesci になります。

imds = imageDatastore(fullfile(matlabroot, 'toolbox', 'matlab', {'demos','imagesci'}),...
'LabelSource', 'foldernames', 'FileExtensions', {'.jpg', '.png', '.tif'});

imds.Labels
ans = 

     demos 
     demos 
     demos 
     demos 
     demos 
     demos 
     imagesci 
     imagesci 

imds 内のファイルから、demos ラベルをもつファイルのみを含む新しいデータ ストアを 2 つ作成します。最初のデータ ストア imds60 には、demos ラベルをもつ最初から 60% のファイルが含まれます。2 番目のデータ ストア imds40 には、demos ラベルをもつ残り 40% のファイルが含まれます。

[imds60, imds40] = splitEachLabel(imds,0.6,'Include','demos')
imds60 = 

  ImageDatastore with properties:

      Files: {
             ' ...\matlab\toolbox\matlab\demos\cloudCombined.jpg';
             ' ...\matlab\toolbox\matlab\demos\example.tif';
             ' ...\matlab\toolbox\matlab\demos\landOcean.jpg'
              ... and 1 more
             }
     Labels: [demos; demos; demos ... and 1 more categorical]
    ReadFcn: @readDatastoreImage


imds40 = 

  ImageDatastore with properties:

      Files: {
             ' ...\matlab\toolbox\matlab\demos\street1.jpg';
             ' ...\matlab\toolbox\matlab\demos\street2.jpg'
             }
     Labels: [demos; demos]
    ReadFcn: @readDatastoreImage

同様に、imagesci ラベルを除外することにより、demos ラベルのみを分割できます。

[imds60, imds40] = splitEachLabel(imds,0.6,'Exclude','imagesci')
imds60 = 

  ImageDatastore with properties:

      Files: {
             ' ...\matlab\toolbox\matlab\demos\cloudCombined.jpg';
             ' ...\matlab\toolbox\matlab\demos\example.tif';
             ' ...\matlab\toolbox\matlab\demos\landOcean.jpg'
              ... and 1 more
             }
     Labels: [demos; demos; demos ... and 1 more categorical]
    ReadFcn: @readDatastoreImage


imds40 = 

  ImageDatastore with properties:

      Files: {
             ' ...\matlab\toolbox\matlab\demos\street1.jpg';
             ' ...\matlab\toolbox\matlab\demos\street2.jpg'
             }
     Labels: [demos; demos]
    ReadFcn: @readDatastoreImage

入力引数

すべて折りたたむ

入力データ ストア。ImageDatastore オブジェクトとして指定します。イメージ データから ImageDatstore を作成するには、関数 imageDatastore を使用します。

分割するファイルの比率。区間 (0,1) 内のスカラー、あるいは正の整数スカラーとして指定します。

  • p が区間 (0,1) 内にある場合は、各ラベルから imds1 に割り当てるファイルの割合を表します。p によりファイル数が 0 または正の整数にならない場合、splitEachLabel は最も近い 0 または正の整数に切り捨てます。

  • p が整数の場合は、各ラベルから imds1 に割り当てるファイルの絶対数を表します。各ラベルには p 個以上のファイルが関連付けられていなければなりません。

データ型: double

比率のリスト。区間 (0,1) 内のスカラー、あるいは正の整数スカラーとして指定します。比率が区間 (0,1) 内にある場合は、各ラベルから出力データ ストアに割り当てるファイルの割合を表します。比率が整数の場合は、各ラベルから出力データ ストアに割り当てるファイルの絶対数を表します。比率が割合を表す場合、その合計は 1 以下でなければなりません。比率がファイル数を表す場合、個々の比率を満たすために十分な数のファイルが各ラベルに関連付けられていなければなりません。

データ型: double

名前と値のペアの引数

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

例: [imds1 imds2] = splitEachLabel(imds,0.5,'Exclude','demos')

含めるラベル。'Include' と、Labels プロパティと同じ型のラベル名のベクトル、cell 配列または string 配列で構成されるコンマ区切りのペアとして指定します。個々の名前は、データ ストアの Labels プロパティ内にあるいずれかのラベルと一致しなければなりません。

データ型: char | cell | string

除外するラベル。'Exclude' と、Labels プロパティと同じ型のラベル名のベクトル、cell 配列または string 配列で構成されるコンマ区切りのペアとして指定します。個々の名前は、データ ストアと関連付けられているラベルを定義し、Labels 内の名前と一致しなければなりません。このオプションを 'Include' オプションと共に使用することはできません。

データ型: char | cell | string

出力引数

すべて折りたたむ

出力データ ストア。ImageDatastore オブジェクトとして返されます。imds1 には imds の各ラベルから指定比率のファイルが含まれ、imds2 には残りのファイルが含まれます。

出力データ ストアのリスト。ImageDatastore オブジェクトとして返されます。リストの要素数は、リストされた比率の個数より 1 大きい数です。新しい各データ ストアは、imds の各ラベルを p1,...,pN で定義された比率で含みます。残りのファイルはすべて、M 番目のデータ ストアに割り当てられます。

R2016a で導入