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 метка. Второй datastore 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. Первый datastore imds1 содержит первый файл с demos пометьте и первый файл imagesci метка. Второй datastore 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. Первый datastore imds60 содержит первые 60% файлов с demos пометьте и первые 60% файлов с imagesci метка. Второй datastore imds10 содержит следующие 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 метка. Второй datastore imds2 содержит следующий файл от каждой метки. Третий 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 метка. Второй datastore 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 метка. Первый 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. Любые перенесенные файлы присвоены datastore Mth.

Смотрите также

| |

Введенный в R2016a