Datastore для данных изображения
Используйте объект ImageDatastore
управлять набором файлов изображений, где каждое отдельное изображение умещается в памяти, но целый набор изображений не обязательно соответствует. Можно создать объект ImageDatastore
с помощью функции imageDatastore
, задать ее свойства, и затем импортировать и обработать функции объекта использования данных.
imds = imageDatastore(location)
imds = imageDatastore(location,Name,Value)
местоположение
Файлы или папки, чтобы включать в datastoreФайлы или папки, чтобы включать в datastore, заданный как вектор символа, массив ячеек из символьных векторов, представляют в виде строки скаляр или массив строк. Если файлы не находятся в текущей папке, то location
должен быть полными или относительными путями. Файлы в подпапках заданной папки автоматически не включены в datastore.
Можно использовать подстановочный символ (*) при определении location
. Этот символ указывает, что все файлы соответствия или все файлы в соответствующих папках включены в datastore.
Если файлы не доступны локально, то полный путь файлов или папок должен быть интернационализировавшим идентификатором ресурса (IRI), такой как
.hdfs:///path_to_file
Для получения информации об использовании datastore
с Amazon S3™ Устройство хранения данных Windows Azure® Blob и HDFS™, видят работу с Удаленными данными.
Когда location
представляет папку, datastore включает только форматы поддерживаемого файла изображения и игнорирует любой другой формат. Поддерживаемые файлы имеют формат imformats
.
Пример: 'file1.jpg'
Пример: '../dir/data/file1.png'
Пример: C: \dir\data\file1.tif', 'C:\dir\data\file2.tif'}
Пример: C: \dir\data\*.jpg'
Типы данных: char
| ячейка
| строка
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Имя
должно появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
imds = imageDatastore ('C:\dir\imagedata', 'FileExtensions', {'.jpg', '.tif'})
'IncludeSubfolders'
Флаг включения подпапкиtrue
или false
| 0 или 1Флаг включения подпапки, заданный как пара, разделенная запятой, состоящая из 'IncludeSubfolders'
и true
, false
, 0, или 1. Задайте true
, чтобы включать все файлы и подпапки в каждой папке или false
, чтобы включать только файлы в каждой папке.
Если вы не задаете 'IncludeSubfolders'
, то значением по умолчанию является false
.
Пример: 'IncludeSubfolders', верный
Типы данных: логический
| дважды
'FileExtensions'
Расширения файла изображенияРасширения файла изображения, заданные как пара, разделенная запятой, состоящая из 'FileExtensions'
и вектора символа, массива ячеек из символьных векторов, представляют в виде строки скаляр или массив строк. Заданные расширения не требуют формата imformats
, и можно использовать пустые кавычки ''
, чтобы представлять файлы без расширений. Если вы не задаете 'FileExtensions'
, то imageDatastore
автоматически включает все изображения с расширениями imformats
в заданном пути. Если вы хотите включать расширения, что imformats
не распознает, то задает все расширения.
Пример: 'FileExtensions' . jpg'
Пример: 'FileExtensions' . jpg', '.png'}
Типы данных: char
| ячейка
| строка
'AlternateFileSystemRoots'
— Альтернативные пути к корню файловой системыАльтернативные пути к корню файловой системы, заданные как пара, разделенная запятой, состоящая из 'AlternateFileSystemRoots'
и вектора строки или массива ячеек. Используйте 'AlternateFileSystemRoots'
, когда вы создадите datastore на локальной машине, но должны будете получить доступ и обработать данные на другой машине (возможно различной операционной системы). Кроме того, при обрабатывании данных с помощью Параллельных вычислений Toolbox™ и MATLAB® Distributed Computing Server™ и данные сохранены на локальных машинах с копией доступных данных на облаке другой платформы или кластерных машинах, необходимо использовать 'AlternateFileSystemRoots'
, чтобы сопоставить корневые пути.
Чтобы сопоставить набор корневых путей, которые эквивалентны друг другу, задайте 'AlternateFileSystemRoots'
как вектор строки. Например,
["Z:\datasets","/mynetwork/datasets"]
Чтобы сопоставить несколько наборов корневых путей, которые эквивалентны для datastore, задайте 'AlternateFileSystemRoots'
как массив ячеек, содержащий несколько строк, где каждая строка представляет набор эквивалентных корневых путей. Задайте каждую строку в массиве ячеек или как вектор строки или как массив ячеек из символьных векторов. Например:
Задайте 'AlternateFileSystemRoots'
как массив ячеек векторов строки.
{["Z:\datasets", "/mynetwork/datasets"];... ["Y:\datasets", "/mynetwork2/datasets","S:\datasets"]}
Также задайте 'AlternateFileSystemRoots'
как массив ячеек массива ячеек из символьных векторов.
{{'Z:\datasets','/mynetwork/datasets'};... {'Y:\datasets', '/mynetwork2/datasets','S:\datasets'}}
Значение 'AlternateFileSystemRoots'
должно удовлетворить эти условия:
Содержит одну или несколько строк, где каждая строка задает набор эквивалентных корневых путей.
Каждая строка задает несколько корневых путей, и каждый корневой путь должен содержать по крайней мере два символа.
Корневые пути уникальны и не являются подпапками друг друга.
Содержит по крайней мере одну корневую запись пути, которая указывает на местоположение файлов.
Для получения дополнительной информации смотрите Настроенный Datastore для Обработки на Различных Машинах или Кластерах.
Пример: Z: \datasets"",/mynetwork/datasets"]
Типы данных: представьте в виде строки
| ячейка
'LabelSource'
Источник, обеспечивающий данные метки'none'
(значение по умолчанию) | 'foldernames'
Источник, обеспечивающий данные метки, заданные как пара, разделенная запятой, состоящая из 'LabelSource'
и 'none'
или 'foldernames'
. Если 'none'
задан, то свойство Labels
пусто. Если 'foldernames'
задан, то метки присвоены согласно именам папок и сохранены в свойстве Labels
. Можно позже изменить метки путем доступа к свойству Labels
непосредственно.
Типы данных: char | string
В дополнение к этим парам "имя-значение" также можно задать любое из свойств на этой странице как пары "имя-значение", за исключением свойства Files
.
Свойства ImageDatastore
описывают данные и задают, как считать данные из datastore. Можно задать значение свойств ImageDatastore
с помощью аргументов в виде пар "имя-значение", когда вы создаете объект datastore. Чтобы просмотреть или изменить свойство после создания объекта, используйте запись через точку.
Например, можно создать объект ImageDatastore
и задать параметр 'ReadFcn'
:
imds = imageDatastore('peppers.png','ReadFcn',@customreader);
'ReadFcn'
@customreader
после того, как вы создадите ImageDatastore
: imds = imageDatastore('peppers.png');
imds.ReadFcn = @customreader;
Files
— Файлы включены в datastoreФайлы, включенные в datastore, разрешенный как вектор символа, массив ячеек из символьных векторов, представляют в виде строки скаляр или массив строк. Каждый вектор символа или строка являются полным путем к файлу. Аргумент location
в imageDatastore
и функциях datastore
задает Files
, когда datastore создается.
Пример: C: \dir\data\file1.jpg'; 'C:\dir\data\file2.jpg'}
Типы данных: char
| ячейка
| строка
ReadSize
Количество файлов изображений, чтобы читатьКоличество файлов изображений, чтобы читать в вызове функции read
, заданной как положительный целочисленный скаляр. Каждый вызов read
функционирует чтения в большинстве изображений ReadSize
.
Labels
— Метки файлаФайл маркирует для файлов в datastore, заданном как вектор, массив ячеек или массив строк. Порядок меток в массиве соответствует порядку связанных файлов в datastore. Если вы задаете 'LabelSource','foldernames'
при создании объекта ImageDatastore
, то имя метки для файла является именем папки, содержащей его. Если вы не задаете 'LabelSource','foldernames'
, то Labels
является массивом пустой ячейки или массивом строк. Если вы изменяете свойство Files
после того, как datastore создается, то свойство Labels
автоматически не обновляется, чтобы включить добавленные файлы.
Типы данных: категориальный
| ячейка
| логический
| удваиваются
| единственный
| строка
ReadFcn
Функция, которая читает данные изображения@readDatastoreImage
(значение по умолчанию) | указатель на функциюФункция, которая читает данные изображения, заданные как указатель на функцию. Функция должна взять имя файла образа в качестве входного параметра, и затем это выводит соответствующие данные изображения. Например, если customreader
является заданной функцией, чтобы считать данные изображения, то это должно иметь подпись, подобную этому:
function data = customreader(filename) ... end
imageDatastore
использует только первый аргумент и игнорирует остальных.
Пример: @customreader
Типы данных: function_handle
countEachLabel | Считайте файлы в метках ImageDatastore |
hasdata | Определите, доступны ли Данные в Чтение |
numpartitions | Количество разделов datastore |
раздел | Разделите datastore |
предварительный просмотр | Подмножество данных в datastore |
чтение | Считайте данные в datastore |
readall | Считывайте все данные в datastore |
readimage | Считайте заданное изображение из datastore |
сброс | Сброс Datastore к начальному состоянию |
перестановка | Переставьте файлы в ImageDatastore |
splitEachLabel | Разделите метки ImageDatastore пропорциями |
Создайте объект ImageDatastore
, сопоставленный со всеми файлами .tif
в пути MATLAB® и его подпапках. Используйте имена папок в качестве имен метки.
imds = imageDatastore(fullfile(matlabroot,'toolbox','matlab'),... 'IncludeSubfolders',true,'FileExtensions','.tif','LabelSource','foldernames')
imds = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\example.tif'; ' ...\matlab\toolbox\matlab\imagesci\corn.tif' } Labels: [demos; imagesci] ReadSize: 1 ReadFcn: @readDatastoreImage
Создайте объект ImageDatastore
, содержащий четыре изображения, и предварительно просмотрите первое изображение.
imds = imageDatastore({'street1.jpg','street2.jpg','peppers.png','corn.tif'})
imds = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\street1.jpg'; ' ...\matlab\toolbox\matlab\demos\street2.jpg'; ' ...\matlab\toolbox\matlab\imagesci\peppers.png' ... and 1 more } ReadSize: 1 Labels: {} ReadFcn: @readDatastoreImage
imshow(preview(imds));
Только для чтения вторые и третьи изображения, по одному.
for i = 2:3 img = readimage(imds,i); end
Считайте все четыре изображения и просмотрите третье изображение.
imgs = readall(imds); imshow(imgs{3})
Также можно создать объект ImageDatastore
с помощью функции datastore
. Например, ds = datastore(location,'Type','image')
создает datastore из набора файлов, заданных location
.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.