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 オブジェクトを作成し、イメージを含むフォルダーの名前に従って各イメージにラベルを付けます。結果のラベル名は folder1 と folder2 になります。
imds = imageDatastore(["cloudCombined.png","example.tif","landOcean.jpg","ngc6543a.jpg",... "corn.tif","street1.jpg","street2.jpg","peppers.png"],... LabelSource="foldernames",FileExtensions=[".jpg",".png",".tif"]); imds.Labels
ans =
folder1
folder1
folder1
folder1
folder1
folder1
folder2
folder2
imds 内のファイルから新しいデータストアを 2 つ作成します。最初のデータストア imds60 には、folder1 ラベルをもつ最初から 60% のファイルと、folder2 ラベルをもつ最初から 60% のファイルが含まれます。2 番目のデータストア imds40 には、各ラベルの残り 40% のファイルが含まれます。ラベルに割合を適用した結果が整数のファイル数にならない場合、splitEachLabel は最も近い 0 または正の整数への切り捨てを行います。
[imds60,imds40] = splitEachLabel(imds,0.6)
imds60 =
ImageDatastore with properties:
Files: {
' ...\folder1\cloudCombined.jpg';
' ...\folder1\example.tif';
' ...\folder1\landOcean.jpg'
... and 2 more
}
Labels: [folder1; folder1; folder1 ... and 2 more categorical]
ReadFcn: @readDatastoreImage
imds40 =
ImageDatastore with properties:
Files: {
' ...\folder1\street1.jpg';
' ...\folder1\street2.jpg';
' ...\folder2\peppers.png'
}
Labels: [folder1; folder2; folder2]
ReadFcn: @readDatastoreImage
ImageDatastore オブジェクトを作成し、イメージを含むフォルダーの名前に従って各イメージにラベルを付けます。結果のラベル名は folder1 と folder2 になります。
imds = imageDatastore(["cloudCombined.png","example.tif","landOcean.jpg","ngc6543a.jpg",... "corn.tif","street1.jpg","street2.jpg","peppers.png"],... LabelSource="foldernames",FileExtensions=[".jpg",".png",".tif"]); imds.Labels
ans =
folder1
folder1
folder1
folder1
folder1
folder1
folder2
folder2
imds 内のファイルから新しいデータストアを 2 つ作成します。最初のデータストア imds1 には、folder1 ラベルをもつ最初のファイルと、folder2 ラベルをもつ最初のファイルが含まれます。2 番目のデータストア imds2 には、各ラベルの残りのファイルが含まれます。
[imds1,imds2] = splitEachLabel(imds,1)
imds1 =
ImageDatastore with properties:
Files: {
' ...\folder1\cloudCombined.jpg';
' ...\folder2\street2.jpg'
}
Labels: [folder1; folder2]
ReadFcn: @readDatastoreImage
imds2 =
ImageDatastore with properties:
Files: {
' ...\folder1\example.tif';
' ...\folder1\landOcean.jpg';
' ...\folder1\ngc6543a.jpg'
... and 3 more
}
Labels: [folder1; folder1; folder1 ... and 3 more categorical]
ReadFcn: @readDatastoreImage
ImageDatastore オブジェクトを作成し、イメージを含むフォルダーの名前に従って各イメージにラベルを付けます。結果のラベル名は folder1 と folder2 になります。
imds = imageDatastore(["cloudCombined.png","example.tif","landOcean.jpg","ngc6543a.jpg",... "corn.tif","street1.jpg","street2.jpg","peppers.png"],... LabelSource="foldernames",FileExtensions=[".jpg",".png",".tif"]); imds.Labels
ans =
folder1
folder1
folder1
folder1
folder1
folder1
folder2
folder2
imds 内のファイルから新しいデータストアを 3 つ作成します。最初のデータストア imds60 には、folder1 ラベルをもつ最初から 60% のファイルと、folder2 ラベルをもつ最初から 60% のファイルが含まれます。2 番目のデータストア imds10 には、各ラベルから次の 10% のファイルが含まれます。3 番目のデータストア imds30 には、各ラベルの残り 30% のファイルが含まれます。ラベルに割合を適用した結果が整数のファイル数にならない場合、splitEachLabel は最も近い 0 または正の整数への切り捨てを行います。
[imds60, imds10, imds30] = splitEachLabel(imds,0.6,0.1)
imds60 =
ImageDatastore with properties:
Files: {
' ...\folder1\cloudCombined.jpg';
' ...\folder1\example.tif';
' ...\folder1\landOcean.jpg'
... and 2 more
}
Labels: [folder1; folder1; folder1 ... and 2 more categorical]
ReadFcn: @readDatastoreImage
imds10 =
ImageDatastore with properties:
Files: {
' ...\folder1\street1.jpg'
}
Labels: folder1
ReadFcn: @readDatastoreImage
imds30 =
ImageDatastore with properties:
Files: {
' ...\folder1\street2.jpg';
' ...\folder2\peppers.png'
}
Labels: [folder1; folder2]
ReadFcn: @readDatastoreImage
ImageDatastore オブジェクトを作成し、イメージを含むフォルダーの名前に従って各イメージにラベルを付けます。結果のラベル名は folder1 と folder2 になります。
imds = imageDatastore(["cloudCombined.png","example.tif","landOcean.jpg","ngc6543a.jpg",... "corn.tif","street1.jpg","street2.jpg","peppers.png"],... LabelSource="foldernames",FileExtensions=[".jpg",".png",".tif"]); imds.Labels
ans =
folder1
folder1
folder1
folder1
folder1
folder1
folder2
folder2
imds 内のファイルから新しいデータストアを 3 つ作成します。最初のデータストア imds1 には、folder1 ラベルをもつ最初のファイルと、folder2 ラベルをもつ最初のファイルが含まれます。2 番目のデータストア imds2 には、各ラベルの次のファイルが 1 つ含まれます。3 番目のデータストア imds3 には、各ラベルの残りのファイルが含まれます。
[imds1, imds2, imds3] = splitEachLabel(imds,1,1)
imds1 =
ImageDatastore with properties:
Files: {
' ...\folder1\cloudCombined.jpg';
' ...\folder2\street2.jpg'
}
Labels: [folder1; folder2]
ReadFcn: @readDatastoreImage
imds2 =
ImageDatastore with properties:
Files: {
' ...\folder1\example.tif';
' ...\folder2\peppers.png'
}
Labels: [folder1; folder2]
ReadFcn: @readDatastoreImage
imds3 =
ImageDatastore with properties:
Files: {
' ...\folder1\landOcean.jpg';
' ...\folder1\ngc6543a.jpg';
' ...\folder1\street1.jpg'
... and 1 more
}
Labels: [folder1; folder1; folder1 ... and 1 more categorical]
ReadFcn: @readDatastoreImage
ImageDatastore オブジェクトを作成し、イメージを含むフォルダーの名前に従って各イメージにラベルを付けます。結果のラベル名は folder1 と folder2 になります。
imds = imageDatastore(["cloudCombined.png","example.tif","landOcean.jpg","ngc6543a.jpg",... "corn.tif","street1.jpg","street2.jpg","peppers.png"],... LabelSource="foldernames",FileExtensions=[".jpg",".png",".tif"]); imds.Labels
ans =
folder1
folder1
folder1
folder1
folder1
folder1
folder2
folder2
imds の各ラベルからランダムに抽出されたファイルから、新しいデータストアを 2 つ作成します。最初のデータストア imds1 には、folder1 のラベルをもつランダムなファイルが 1 つ、folder2 のラベルをもつランダムなファイルが 1 つ含まれます。2 番目のデータストア imds2 には、各ラベルの残りのファイルが含まれます。
[imds1, imds2] = splitEachLabel(imds,1,'randomized')
imds1 =
ImageDatastore with properties:
Files: {
' ...\folder1\street2.jpg';
' ...\folder2\corn.tif'
}
Labels: [folder2; folder1]
ReadFcn: @readDatastoreImage
imds2 =
ImageDatastore with properties:
Files: {
' ...\folder1\cloudCombined.jpg';
' ...\folder1\example.tif';
' ...\folder1\landOcean.jpg'
... and 3 more
}
Labels: [folder1; folder1; folder1 ... and 3 more categorical]
ReadFcn: @readDatastoreImage
ImageDatastore オブジェクトを作成し、イメージを含むフォルダーの名前に従って各イメージにラベルを付けます。結果のラベル名は folder1 と folder2 になります。
imds = imageDatastore(["cloudCombined.png","example.tif","landOcean.jpg","ngc6543a.jpg",... "corn.tif","street1.jpg","street2.jpg","peppers.png"],... LabelSource="foldernames",FileExtensions=[".jpg",".png",".tif"]); imds.Labels
ans =
folder1
folder1
folder1
folder1
folder1
folder1
folder2
folder2
imds 内のファイルから、folder1 ラベルをもつファイルのみを含む新しいデータストアを 2 つ作成します。最初のデータストア imds60 には、folder1 ラベルをもつ最初から 60% のファイルが含まれます。2 番目のデータストア imds40 には、folder1 ラベルをもつ残り 40% のファイルが含まれます。
[imds60, imds40] = splitEachLabel(imds,0.6,'Include','folder1')
imds60 =
ImageDatastore with properties:
Files: {
' ...\folder1\cloudCombined.jpg';
' ...\folder1\example.tif';
' ...\folder1\landOcean.jpg'
... and 1 more
}
Labels: [folder1; folder1; folder1 ... and 1 more categorical]
ReadFcn: @readDatastoreImage
imds40 =
ImageDatastore with properties:
Files: {
' ...\folder1\street1.jpg';
' ...\folder1\street2.jpg'
}
Labels: [folder1; folder1]
ReadFcn: @readDatastoreImage
同様に、folder2 ラベルを除外することにより、folder1 ラベルのみを分割できます。
[imds60, imds40] = splitEachLabel(imds,0.6,'Exclude','folder2')
imds60 =
ImageDatastore with properties:
Files: {
' ...\folder1\cloudCombined.jpg';
' ...\folder1\example.tif';
' ...\folder1\landOcean.jpg'
... and 1 more
}
Labels: [folder1; folder1; folder1 ... and 1 more categorical]
ReadFcn: @readDatastoreImage
imds40 =
ImageDatastore with properties:
Files: {
' ...\folder1\corn.tif';
' ...\folder1\street1.jpg'
}
Labels: [folder1; folder1]
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
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。
例: [imds1 imds2] = splitEachLabel(imds,0.5,'Exclude','folder1')
含めるラベル。'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 番目のデータストアに割り当てられます。
拡張機能
splitEachLabel 関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2016a で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)