exponenta event banner

splitEachLabel

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

Описание

пример

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

пример

[imds1,...,imdsM] = splitEachLabel(imds,p1,...,pN) разбивает хранилище данных на N+1 новые хранилища данных. Первое новое хранилище данных imds1 содержит первый p1 файлы из каждой метки, следующее новое хранилище данных imds2 содержит следующий p2 файлы и так далее. Если p1,...,pN представляют количество файлов, то их сумма должна быть не больше количества файлов в наименьшей метке в исходном хранилище данных 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. Первое хранилище данных imds60 содержит первые 60% файлов с demos и первые 60% файлов с imagesci этикетка. Второе хранилище данных imds40 содержит оставшиеся 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. Первое хранилище данных imds1 содержит первый файл с demos и первый файл с помощью imagesci этикетка. Второе хранилище данных 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. Первое хранилище данных imds60 содержит первые 60% файлов с demos и первые 60% файлов с imagesci этикетка. Второе хранилище данных imds10 содержит следующие 10% файлов из каждой метки. Третье хранилище данных 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. Первое хранилище данных imds1 содержит первый файл с demos и первый файл с помощью imagesci этикетка. Второе хранилище данных imds2 содержит следующий файл из каждой метки. Третье хранилище данных 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 путем случайного рисования из каждой метки. Первое хранилище данных imds1 содержит один случайный файл с demos метка и один случайный файл с imagesci этикетка. Второе хранилище данных 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 этикетка. Первое хранилище данных imds60 содержит первые 60% файлов с demos метка и второе хранилище данных 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

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

свернуть все

Хранилище входных данных, указанное как 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 свойства хранилища данных.

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

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

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

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

свернуть все

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

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

Представлен в R2016a