Datastore для данных изображения
Используйте ImageDatastore
объект управлять набором файлов изображений, где каждое отдельное изображение умещается в памяти, но целый набор изображений не обязательно соответствует. Можно создать ImageDatastore
объект с помощью imageDatastore
функционируйте, задайте его свойства, и затем импортируйте и обработайте данные, используя функции объекта.
создает datastore imds
= imageDatastore(location
)imds
из набора данных изображения, заданных location
.
задает дополнительные параметры и свойства для imds
= imageDatastore(location
,Name,Value
)imds
использование одного или нескольких аргументов пары "имя-значение".
location
— Файлы или папки, чтобы включать в datastoreFileSet
возразите | путь к файлу | DsFileSet
объектФайлы или папки включены в datastore в виде FileSet
объект, как пути к файлам, или как DsFileSet
объект.
FileSet
объект — можно задать location
как FileSet
объект. Определение местоположения как FileSet
объект приводит к более быстрому времени создания для хранилищ данных по сравнению с определением пути или DsFileSet
объект. Для получения дополнительной информации смотрите matlab.io.datastore.FileSet
.
Путь к файлу — можно задать один путь к файлу как вектор символов или строковый скаляр. Можно задать несколько путей к файлам как массив ячеек из символьных векторов или массив строк.
DsFileSet
объект — можно задать DsFileSet
объект. Для получения дополнительной информации смотрите matlab.io.datastore.DsFileSet
.
Файлы или папки могут быть локальными или удаленными:
Локальные файлы или папки — Задают локальные пути к файлам или папкам. Если файлы не находятся в текущей папке, то задают полные или относительные пути. Файлы в подпапках заданной папки автоматически не включены в datastore. Можно использовать подстановочный символ (*) при определении локального пути. Этот символ указывает, что datastore включает все файлы соответствия или все файлы в соответствующих папках.
Удаленные файлы или папки — Задают полные пути к удаленным файлам или папкам как универсальный локатор ресурса (URL) формы hdfs:///
. Для получения дополнительной информации смотрите работу с Удаленными данными.path_to_file
Когда вы задаете папку, datastore включает только файлы с поддерживаемыми форматами файлов и игнорирует файлы с любым другим форматом. Чтобы задать пользовательский список расширений файла, чтобы включать в ваш datastore, смотрите FileExtensions
свойство.
imageDatastore
функционируйте поддерживает файлы, которые имеют imformats
формат.
Пример: "file1.jpg"
Пример: "../dir/data/file1.png"
Пример: ["C:\dir\data\file1.tif","C:\dir\data\file2.tif"]
Пример: "C:\dir\data\*.jpg"
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
imds = imageDatastore("C:\dir\imagedata","FileExtensions",[".jpg",".tif"])
IncludeSubfolders
— Флаг включения подпапкиfalse
(значение по умолчанию) | true
Включение подпапки отмечает в виде аргумента значения имени, состоящего из "IncludeSubfolders"
и true
или false
. Задайте true
включать все файлы и подпапки в каждой папке или false
включать только файлы в каждой папке.
Если вы не задаете "IncludeSubfolders"
, затем значением по умолчанию является false
.
Пример: "IncludeSubfolders",true
Типы данных: логический |
double
FileExtensions
— Расширения файла изображенияРасширения файла изображения в виде разделенной запятой пары, состоящей из "FileExtensions"
и вектор символов, массив ячеек из символьных векторов, строковый скаляр или массив строк. Заданные расширения не требуют imformats
формат, и можно использовать пустые кавычки ""
представлять файлы без расширений. Если вы не задаете "FileExtensions"
, затем imageDatastore
автоматически включает все изображения с imformats
расширения в заданном пути. Если вы хотите включать расширения что imformats
не распознает, затем задает все расширения.
Пример: "FileExtensions",".jpg"
Пример: "FileExtensions",[".jpg",".png"]
Типы данных: char |
cell
| string
AlternateFileSystemRoots
— Альтернативные пути к корню файловой системыАльтернативные пути к корню файловой системы в виде аргумента значения имени, состоящего из "AlternateFileSystemRoots"
и вектор строки или массив ячеек. Используйте "AlternateFileSystemRoots"
когда вы создаете datastore на локальной машине, но должны получить доступ и обработать данные на другой машине (возможно различной операционной системы). Кроме того, при обрабатывании данных с помощью Parallel Computing Toolbox™ и MATLAB® Parallel 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"]
Типы данных: string
| cell
LabelSource
— Исходное обеспечение помечает данные"none"
(значение по умолчанию) | "foldernames"
Исходное обеспечение помечает данные в виде аргумента значения имени, состоящего из "LabelSource"
и любой "none"
или "foldernames"
. Если "none"
задан, затем Labels
свойство пусто. Если "foldernames"
задан, затем помечает, присвоены согласно именам папок и сохранены в Labels
свойство. Можно позже изменить метки путем доступа к Labels
свойство непосредственно.
"LabelSource"
аргумент значения имени не применим, если объект FileSet используется в качестве местоположения папки или файла.
Типы данных: char |
string
В дополнение к этим парам "имя-значение" также можно задать любое из свойств на этой странице как пары "имя-значение", за исключением Files
свойство.
ImageDatastore
свойства описывают данные и задают, как считать данные из datastore. Можно задать значение ImageDatastore
свойства с помощью аргументов name-value, когда вы создаете объект 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 |
cell
| string
Folders
— Папки раньше создавали datastoreЭто свойство доступно только для чтения.
Папки, используемые, чтобы создать datastore, возвратились как массив ячеек из символьных векторов. Массив ячеек ориентирован как вектор-столбец. Каждый вектор символов является путем к папке, которая содержит файлы данных. location
аргумент в imageDatastore
и datastore
функции задают Folders
когда datastore создается.
Типы данных: cell
ReadSize
— Количество файлов изображений, чтобы читатьКоличество файлов изображений, чтобы читать в вызове read
функция в виде положительного целочисленного скаляра. Каждый вызов read
функционируйте чтения в большей части ReadSize
изображения.
Labels
— Метки файлаФайл помечает для файлов в datastore в виде вектора, массива ячеек или массива строк. Порядок меток в массиве соответствует порядку связанных файлов в datastore. Если вы задаете "LabelSource","foldernames"
при создании ImageDatastore
объект, затем имя метки для файла является именем папки, содержащей его. Если вы не задаете "LabelSource","foldernames"
, затем Labels
массив пустой ячейки или массив строк. Если вы изменяете Files
свойство после datastore создается, затем Labels
свойство автоматически не обновляется, чтобы включить добавленные файлы.
Типы данных: categorical
| cell
| logical
| double
| single
| string
ReadFcn
— Функция, которая читает данные изображения@readDatastoreImage
(значение по умолчанию) | указатель на функциюФункция, которая читает данные изображения в виде указателя на функцию. Функция должна взять имя файла образа в качестве входа, и затем это выводит соответствующие данные изображения. Например, если customreader
заданная функция должна считать данные изображения, затем это должно иметь подпись, похожую на это:
function data = customreader(filename) ... end
imageDatastore
использование только первый аргумент и игнорирует остальных.
Примечание
Используя ReadFcn
преобразовать или предварительно обработать 2D изображения не рекомендуются. Для форматов файлов, распознанных imformats
, определение ReadFcn
замедляет эффективность imageDatastore
. Для более эффективных способов преобразовать и предварительно обработать изображения, смотрите, Предварительно обрабатывают Изображения для Глубокого обучения (Deep Learning Toolbox).
Пример: @customreader
Типы данных: function_handle
SupportedOutputFormats
— Список форматов поддержан для записиЭто свойство доступно только для чтения.
Список форматов поддержан для записи, возвращенный как вектор-строка из строк. Это свойство задает возможные выходные форматы при использовании writeall
записать выходные файлы из datastore.
Типы данных: string
DefaultOutputFormat
— Выходной формат по умолчаниюЭто свойство доступно только для чтения.
Выходной формат по умолчанию, возвращенный как строковый скаляр. Это свойство задает формат по умолчанию при использовании writeall
записать выходные файлы из datastore.
Типы данных: string
countEachLabel | Считайте файлы в марках ImageDatastore |
hasdata | Определите, доступны ли данные для чтения |
numpartitions | Количество разделов datastore |
partition | Разделите datastore |
preview | Подмножество предварительного просмотра данных в datastore |
read | Считайте данные в datastore |
readall | Считывайте все данные в datastore |
readimage | Считайте заданное изображение из datastore |
writeall | Запишите datastore в файлы |
reset | Сброс Datastore к начальному состоянию |
shuffle | Переставьте все данные в datastore |
splitEachLabel | Разделите марки ImageDatastore пропорциями |
subset | Создайте подмножество datastore или установленный на файл |
transform | Преобразуйте datastore |
combine | Объедините данные от нескольких datastores |
isPartitionable | Определите, partitionable ли datastore |
isShuffleable | Определите, shuffleable ли datastore |
Создайте 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'
}
Folders: {
'...\matlab\toolbox\matlab'
}
Labels: [demos; imagesci]
AlternateFileSystemRoots: {}
ReadSize: 1
SupportedOutputFormats: ["png" "jpg" "jpeg" "tif" "tiff"]
DefaultOutputFormat: "png"
ReadFcn: @readDatastoreImage
Создайте FileSet
объект, содержащий четыре изображения. Создайте ImageDatastore
объект.
fs = matlab.io.datastore.FileSet(["street1.jpg","street2.jpg","peppers.png","corn.tif"])
fs = FileSet with properties: NumFiles: 4 NumFilesRead: 0 FileInfo: Show FileInfo for all 4 files AlternateFileSystemRoots: {}
imds = imageDatastore(fs)
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
}
Folders: {
'...\matlab\toolbox\matlab\demos';
'...\matlab\toolbox\matlab\imagesci'
}
AlternateFileSystemRoots: {}
ReadSize: 1
Labels: {}
SupportedOutputFormats: ["png" "jpg" "jpeg" "tif" "tiff"]
DefaultOutputFormat: "png"
ReadFcn: @readDatastoreImage
Предварительно просмотрите первое изображение.
imshow(preview(imds));
Только для чтения вторые и третьи изображения, по одному.
for i = 2:3 img = readimage(imds,i); end
Считайте все четыре изображения и просмотрите третье изображение.
imgs = readall(imds); imshow(imgs{3})
Используя ReadFcn, чтобы преобразовать или предварительно обработать 2D изображения не рекомендуется. Для форматов файлов, распознанных imformats
, определение ReadFcn
замедляет эффективность imageDatastore
. Для более эффективных способов преобразовать и предварительно обработать изображения, смотрите, Предварительно обрабатывают Изображения для Глубокого обучения (Deep Learning Toolbox).
backgroundPool
или ускорьте код с Parallel Computing Toolbox™ ThreadPool
.Указания и ограничения по применению:
read
, readall
, и readimage
не поддерживайте следующие форматы изображения в основанной на потоке среде.
Иерархический формат данных (HDF)
SVS
TIFF
writeall
не поддерживается в основанной на потоке среде.
Можно использовать combine
и transform
только с ImageDatastore
, CombinedDatastore
, или TransformedDatastore
объекты в основанной на потоке среде.
Для получения дополнительной информации смотрите функции MATLAB Запуска в Основанной на потоке Среде.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.