splitEachLabel

Разделите метки ImageDatastore по пропорциям

Описание

пример

[imds1,imds2] = splitEachLabel(imds,p) разделяет файлы изображений на imds в два новых хранилища данных, imds1 и imds2. Новый datastore imds1 содержит первое p файлы из каждой метки и imds2 содержит оставшиеся файлы из каждой метки. p может быть либо числом от 0 до 1, указывающим процент файлов от каждой метки, которой нужно назначить imds1, или целое число, указывающее абсолютное количество файлов из каждой метки, которую нужно назначить imds1.

пример

[imds1,...,imdsM] = splitEachLabel(imds,p1,...,pN) разделяет datastore на N+1 новые хранилища данных. Первый новый datastore imds1 содержит первое p1 файлы из каждой метки, следующего нового datastore imds2 содержит следующую p2 файлы и так далее. Если p1,...,pN представляют номера файлов, тогда их сумма должна быть не больше, чем количество файлов в наименьшей метке в исходном datastore imds.

пример

___ = splitEachLabel(___,'randomized') случайным образом присваивает заданную долю файлов из каждой метки новым хранилищам данных.

пример

___ = splitEachLabel(___,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. Первый datastore imds60 содержит первые 60% файлов с demos пометить и первые 60% файлов с imagesci метка. Второй imds40 datastore содержит оставшиеся 40% файлов из каждой метки. Если процент, примененный к метке, не приводит к целому числу файлов, splitEachLabel округлится до ближайшего целого числа.

[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. Первый datastore imds1 содержит первый файл с demos пометить и первый файл с imagesci метка. Второй imds2 datastore содержит оставшиеся файлы из каждой метки.

[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. Первый datastore imds60 содержит первые 60% файлов с demos пометить и первые 60% файлов с imagesci метка. Второй imds10 datastore содержит следующие 10% файлов из каждой метки. Третий datastore imds30 содержит оставшиеся 30% файлов из каждой метки. Если процент, примененный к метке, не приводит к целому числу файлов, splitEachLabel округлится до ближайшего целого числа.

[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. Первый datastore imds1 содержит первый файл с demos пометить и первый файл с imagesci метка. Второй imds2 datastore содержит следующий файл из каждой метки. Третий datastore 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 путем случайного рисования из каждой метки. Первый datastore imds1 содержит один случайный файл с demos пометить и один случайный файл с imagesci метка. Второй imds2 datastore содержит оставшиеся файлы из каждой метки.

[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 метка. Первый datastore imds60 содержит первые 60% файлов с demos пометить и второй datastore imds40 содержит оставшиеся 40% файлов с demos метка.

[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

Эквивалентно, вы можете разделить только demos метка путем исключения imagesci метка.

[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

Входные параметры

свернуть все

Введите datastore, заданный как ImageDatastore объект. Как создать ImageDatstore из данных вашего изображения используйте imageDatastore функция.

Доля файлов в разделении, заданная как скаляр в интервале (0,1) или положительный целочисленный скаляр.

  • Если p находится в интервале (0,1), затем представляет процент файлов от каждой метки, которой нужно назначить imds1. Если p не приводит к целому числу файлов, тогда splitEachLabel округлится до ближайшего целого числа.

  • Если 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 свойство. Каждое имя должно совпадать с одной из меток в Labels свойство datastore.

Типы данных: char | cell | string

Метки для исключения, заданные как разделенная разделенными запятой парами, состоящая из 'Exclude' и вектор, массив ячеек или строковые массивы имен меток того же типа, что и Labels свойство. Каждое имя задает метку, связанную с datastore, и должно совпадать с именами в Labels. Эта опция не может использоваться с 'Include' опция.

Типы данных: char | cell | string

Выходные аргументы

свернуть все

Выход хранилищ данных, возвращенный как ImageDatastore объекты. imds1 содержит указанную долю файлов из каждой метки в imds, и imds2 содержит оставшиеся файлы.

Список выхода хранилищ данных, возвращенный как ImageDatastore объекты. Количество элементов в списке на один больше, чем количество перечисленных пропорций. Каждый из новых хранилищ данных содержит долю каждой метки в imds определяется p1,...,pN. Все оставшиеся файлы присваиваются Mth datastore.

Введенный в R2016a