splitEachLabel

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

Синтаксис

[imds1,imds2] = splitEachLabel(imds,p)
[imds1,...,imdsM] = splitEachLabel(imds,p1,...,pN)
___ = splitEachLabel(___,'randomized')
___ = splitEachLabel(___,Name,Value)

Описание

пример

[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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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