splitEachLabel
ImageDatastore のラベルを比率で分割
構文
説明
[
は、imds1,imds2
] = splitEachLabel(imds
,p
)imds
内のイメージ ファイルを 2 つの新しいデータストア imds1
と imds2
に分割します。新しいデータストア 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(___,
は、1 つ以上の名前と値のペアの引数を使用して新しいデータストアのプロパティを指定します。たとえば、Name,Value
)'Include','labelname'
を使用して分割するラベルを指定できます。
例
割合でラベルを分割
ImageDatastore
オブジェクトを作成し、イメージを含むフォルダーの名前に従って各イメージにラベルを付けます。結果のラベル名は demos
と imagesci
になります。
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
オブジェクトを作成し、イメージを含むフォルダーの名前に従って各イメージにラベルを付けます。結果のラベル名は demos
と imagesci
になります。
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
オブジェクトを作成し、イメージを含むフォルダーの名前に従って各イメージにラベルを付けます。結果のラベル名は demos
と imagesci
になります。
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
オブジェクトを作成し、イメージを含むフォルダーの名前に従って各イメージにラベルを付けます。結果のラベル名は demos
と imagesci
になります。
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
オブジェクトを作成し、イメージを含むフォルダーの名前に従って各イメージにラベルを付けます。結果のラベル名は demos
と imagesci
になります。
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
オブジェクトを作成し、イメージを含むフォルダーの名前に従って各イメージにラベルを付けます。結果のラベル名は demos
と imagesci
になります。
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
入力引数
imds
— 入力データストア
ImageDatastore
オブジェクト
入力データストア。ImageDatastore
オブジェクトとして指定します。イメージ データから ImageDatstore
を作成するには、関数 imageDatastore
を使用します。
p
— 分割するファイルの比率
区間 (0,1) 内のスカラー | 正の整数スカラー
分割するファイルの比率。区間 (0,1) 内のスカラー、あるいは正の整数スカラーとして指定します。
p
が区間 (0,1) 内にある場合は、各ラベルからimds1
に割り当てるファイルの割合を表します。p
によりファイル数が 0 または正の整数にならない場合、splitEachLabel
は最も近い 0 または正の整数に切り捨てます。p
が整数の場合は、各ラベルからimds1
に割り当てるファイルの絶対数を表します。各ラベルにはp
個以上のファイルが関連付けられていなければなりません。
データ型: double
p1,...,pN
— 比率のリスト
区間 (0,1) 内のスカラー | 正の整数スカラー
比率のリスト。区間 (0,1) 内のスカラー、あるいは正の整数スカラーとして指定します。比率が区間 (0,1) 内にある場合は、各ラベルから出力データストアに割り当てるファイルの割合を表します。比率が整数の場合は、各ラベルから出力データストアに割り当てるファイルの絶対数を表します。比率が割合を表す場合、その合計は 1 以下でなければなりません。比率がファイル数を表す場合、個々の比率を満たすために十分な数のファイルが各ラベルに関連付けられていなければなりません。
データ型: double
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: [imds1 imds2] = splitEachLabel(imds,0.5,'Exclude','demos')
Include
— 含めるラベル
カテゴリカル ベクトル、論理ベクトルまたは数値ベクトル | 文字ベクトルの cell 配列 | string 配列
含めるラベル。'Include'
と、Labels
プロパティと同じ型のラベル名のベクトル、cell 配列または string 配列で構成されるコンマ区切りのペアとして指定します。個々の名前は、データストアの Labels
プロパティ内にあるいずれかのラベルと一致しなければなりません。
データ型: char
| cell
| string
Exclude
— 除外するラベル
カテゴリカル ベクトル、論理ベクトルまたは数値ベクトル | 文字ベクトルの cell 配列 | string 配列
除外するラベル。'Exclude'
と、Labels
プロパティと同じ型のラベル名のベクトル、cell 配列または string 配列で構成されるコンマ区切りのペアとして指定します。個々の名前は、データストアと関連付けられているラベルを定義し、Labels
内の名前と一致しなければなりません。このオプションを 'Include'
オプションと共に使用することはできません。
データ型: char
| cell
| string
出力引数
imds1,imds2
— 出力データストア
ImageDatastore
オブジェクト
出力データストア。ImageDatastore
オブジェクトとして返されます。imds1
には imds
の各ラベルから指定比率のファイルが含まれ、imds2
には残りのファイルが含まれます。
imds1,...,imdsM
— 出力データストアのリスト
ImageDatastore
オブジェクト
出力データストアのリスト。ImageDatastore
オブジェクトとして返されます。リストの要素数は、リストされた比率の個数より 1 大きい数です。新しい各データストアは、imds
の各ラベルを p1,...,pN
で定義された比率で含みます。残りのファイルはすべて、M 番目のデータストアに割り当てられます。
拡張機能
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2016a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)