主要内容

imageDatastore

图像数据的数据存储

描述

使用一个ImageDatastore对象来管理图像文件集合,其中每个单独的图像都适合内存,但不一定适合整个图像集合。您可以创建ImageDatastore对象使用imageDatastore函数,指定其属性,然后使用对象函数导入和处理数据。

创建

描述

洛桑国际管理发展学院= imageDatastore (位置创建一个数据存储洛桑国际管理发展学院指定的图像数据的集合位置

例子

洛桑国际管理发展学院= imageDatastore (位置名称,值指定附加参数和属性洛桑国际管理发展学院使用一个或多个名称-值对参数。

输入参数

全部展开

包含在数据存储中的文件或文件夹,指定为文件集对象作为文件路径,或作为DsFileSet对象。

  • 文件集object -可以指定位置作为一个文件集对象。指定位置为文件集对象相比于指定路径或DsFileSet对象。有关更多信息,请参见matlab.io.datastore.FileSet

  • 文件路径—您可以将单个文件路径指定为字符向量或字符串标量。您可以将多个文件路径指定为字符向量的单元格数组或字符串数组。

  • DsFileSetobject -可以指定DsFileSet对象。有关更多信息,请参见matlab.io.datastore.DsFileSet

文件或文件夹可以是本地的或远程的:

  • 本地文件或文件夹—指定文件或文件夹的本地路径。如果文件不在当前文件夹中,则指定完整路径或相对路径。指定文件夹的子文件夹中的文件不会自动包含在数据存储中。当指定本地路径时,可以使用通配符*。此字符指定数据存储包括所有匹配文件或匹配文件夹中的所有文件。

  • 远程文件或文件夹——指定远程文件或文件夹的完整路径作为格式的统一资源定位符(URL)hdfs: / / /path_to_file.有关更多信息,请参见使用远程数据

指定文件夹时,数据存储只包括支持的文件格式的文件,而忽略任何其他格式的文件。万博1manbetx若要指定要包含在数据存储中的自定义文件扩展名列表,请参见FileExtensions财产。

imageDatastore函数支持具有万博1manbetximformats格式。

例子:“file1.jpg”

例子:“. . / dir /数据/ file1.png”

例子:[" C: \ dir \ data \ file1.tif”,“C: \ dir \ data \ file2.tif”)

例子:“C: \ dir \ \ * . jpg”数据

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:imds = imageDatastore("C:\dir\imagedata","FileExtensions",[".jpg",".tif"])

子文件夹包含标志,指定为名称-值参数,由“IncludeSubfolders”而且真正的.指定真正的在每个文件夹或中包含所有文件和子文件夹只包括每个文件夹中的文件。

如果您没有指定“IncludeSubfolders”,则默认值为

例子:“IncludeSubfolders”,真的

数据类型:逻辑|

映像文件扩展名,指定为逗号分隔的对,由“FileExtensions”字符向量,字符向量的单元格数组,字符串标量,或者字符串数组。指定的扩展名不需要imformats格式,您可以使用空引号""表示没有扩展名的文件。如果您没有指定“FileExtensions”,然后imageDatastore自动包含所有图像imformats指定路径下的扩展。如果你想包含扩展imformats不识别,则指定所有扩展名。

例子:“FileExtensions”、“jpg”

例子:“FileExtensions”(jpg, png”)

数据类型:字符|细胞|字符串

可选文件系统根路径,指定为由“AlternateFileSystemRoots”一个字符串向量或者单元格数组。使用“AlternateFileSystemRoots”在本地机器上创建数据存储,但需要在另一台机器(可能是不同的操作系统)上访问和处理数据。此外,在使用并行计算工具箱™和MATLAB®并行服务器™,并且数据存储在您的本地机器上,不同平台云或集群机器上可用的数据副本,您必须使用“AlternateFileSystemRoots”关联根路径。

  • 若要关联一组等价的根路径,请指定“AlternateFileSystemRoots”作为一个字符串向量。例如,

    [" Z: \数据集”、“/ mynetwork /数据集”)

  • 若要关联多个与数据存储等效的根路径集,请指定“AlternateFileSystemRoots”作为包含多行的单元格数组,其中每行表示一组等效根路径。将单元格数组中的每一行指定为字符串向量或字符向量的单元格数组。例如:

    • 指定“AlternateFileSystemRoots”作为字符串向量的单元格数组。

      {[Z: \“数据集”、“/ mynetwork /数据集”);…[" Y: \数据集”、“/ mynetwork2 /数据集”、“年代:\数据集”)}

    • 另外,指定“AlternateFileSystemRoots”作为字符向量的单元格数组的单元格数组。

      {{“Z: \数据集”、“mynetwork /数据集”},…{“Y: \数据集”,“mynetwork2 /数据集”,年代:\数据集的}}

的价值“AlternateFileSystemRoots”必须满足这些条件:

  • 包含一行或多行,其中每行指定一组等效的根路径。

  • 每行指定多个根路径,每个根路径至少包含两个字符。

  • 根路径是唯一的,并且不是彼此的子文件夹。

  • 包含至少一个指向文件位置的根路径条目。

有关更多信息,请参见为不同机器或集群上的处理设置数据存储

例子:[" Z: \数据集”、“/ mynetwork /数据集”)

数据类型:字符串|细胞

提供标签数据的源,指定为由“LabelSource”,要么“没有”“foldernames”.如果“没有”,则标签属性为空。如果“foldernames”,则根据文件夹名称分配标签并存储在标签财产。方法来修改标签标签直接的财产。

“LabelSource”如果使用FileSet对象作为文件或文件夹位置,则name-value参数不可用。

数据类型:字符|字符串

除了这些名称-值对之外,还可以将该页上的任何属性指定为名称-值对,但是文件财产。

属性

全部展开

ImageDatastore属性描述数据并指定如何从数据存储区读取数据。的值ImageDatastore属性,在创建数据存储对象时使用名称-值参数。要在创建对象后查看或修改属性,请使用点表示法。

例如,您可以创建一个ImageDatastore对象,并指定“ReadFcn”参数:

imds = imageDatastore(“peppers.png”“ReadFcn”, @customreader);
或者,你也可以分配“ReadFcn”@customreader在创建ImageDatastore
imds = imageDatastore(“peppers.png”);洛桑国际管理发展学院。ReadFcn = @customreader;

包含在数据存储中的文件,解析为字符向量、字符向量的单元格数组、字符串标量或字符串数组。每个字符向量或字符串都是文件的完整路径。的位置参数中的参数imageDatastore而且数据存储函数定义文件创建数据存储时。

例子:{“C: \ dir \ data \ file1.jpg”;“C: \ dir \ data \ file2.jpg”}

数据类型:字符|细胞|字符串

此属性是只读的。

用于构造数据存储的文件夹,作为字符向量的单元格数组返回。单元格数组以列向量为方向。每个字符向量都是指向包含数据文件的文件夹的路径。的位置参数中的参数imageDatastore而且数据存储函数定义文件夹创建数据存储时。

数据类型:细胞

类调用中要读取的图像文件的数目函数,指定为正整数标量。每次调用函数最多读取ReadSize图像。

数据存储中文件的文件标签,指定为向量、单元格数组或字符串数组。数组中标签的顺序对应于数据存储中相关文件的顺序。如果你指定“LabelSource”、“foldernames”当创建ImageDatastore对象,则文件的标签名称为包含该文件的文件夹的名称。如果您没有指定“LabelSource”、“foldernames”,然后标签是空单元格数组或字符串数组。如果你改变文件属性创建数据存储后,则标签属性不会自动更新以合并添加的文件。

数据类型:分类|细胞|逻辑|||字符串

读取图像数据的函数,指定为函数句柄。该函数必须以图像文件名作为输入,然后输出相应的图像数据。例如,如果customreader是指定的函数读取图像数据,那么它必须有一个类似这样的签名:

函数data = customreader(filename)…结束
如果存在多个输出参数,则imageDatastore只使用第一个参数,忽略其余参数。

请注意

使用ReadFcn不建议转换或预处理2-D图像。识别的文件格式imformats,指定ReadFcn减慢的性能imageDatastore.有关转换和预处理图像的更有效方法,请参见用于深度学习的图像预处理(深度学习工具箱)

例子:@customreader

数据类型:function_handle

此属性是只读的。

支持写入的格式,万博1manbetx作为字符串的行向量返回。此属性指定使用时可能的输出格式writeall从数据存储写入输出文件。

此属性是只读的。

默认输出格式,作为字符串标量返回。此属性指定使用时的默认格式writeall从数据存储写入输出文件。

数据类型:字符串

对象的功能

countEachLabel 计数ImageDatastore标签中的文件
hasdata 确定是否有数据可以读取
numpartitions 数据存储分区数
分区 对数据存储进行分区
预览 预览数据存储中的数据子集
读取数据存储中的数据
readall 读取数据存储中的所有数据
readimage 从数据存储中读取指定映像
writeall 将数据存储写入文件
重置 将数据存储重置为初始状态
洗牌 打乱数据存储中的所有数据
splitEachLabel 按比例分割ImageDatastore标签
子集 创建数据存储或文件集的子集
变换 变换数据存储
结合 组合来自多个数据存储的数据
isPartitionable 确定数据存储是否可分区
isSubsettable 确定数据存储是否可子集
isShuffleable 确定数据存储是否可洗牌

例子

全部折叠

创建一个ImageDatastore与all关联的对象。.tifMATLAB®路径下的文件及其子文件夹。使用文件夹名称作为标签名称。

imds = imageDatastore(fullfile(matlabroot,“工具箱”“matlab”),...“IncludeSubfolders”,真的,“FileExtensions”“.tif”“LabelSource”“foldernames”
imd =ImageDatastore的属性:文件:{'…\matlab\toolbox\matlab\demos\example.tif';\matlab\toolbox\matlab\imagesci\corn.tif'}文件夹:{'…\matlab\toolbox\matlab'}标签:[demo;imagesci] AlternateFileSystemRoots: {} ReadSize: 1 万博1manbetxSupportedOutputFormats: ["png" "jpg" "jpeg" "tif" "tiff"] DefaultOutputFormat: "png" ReadFcn: @readDatastoreImage

创建一个文件集对象,其中包含四张图像。创建一个ImageDatastore对象。

fs = matlab.io.datastore.FileSet([“street1.jpg”“street2.jpg”“peppers.png”“corn.tif”])
fs =带有属性的文件集:NumFiles: 4 NumFilesRead: 0 FileInfo:显示所有4个文件的FileInfo
imds = imageDatastore(fs)
imd =ImageDatastore的属性:文件:{'…\matlab\toolbox\matlab\demos\street1.jpg';’……\ matlab \ matlab工具箱\ \ demo \ street2.jpg”;\matlab\toolbox\matlab\imagesci\pepper .png{'…\matlab\toolbox\matlab\demos';“…\matlab\toolbox\matlab\imagesci'} AlternateFileSystemRoots: {} ReadSize: 1 Labels: {} S万博1manbetxupportedOutputFormats: ["png" "jpg" "jpeg" "tif" "tiff"] DefaultOutputFormat: "png" ReadFcn: @readDatastoreImage

预览第一张图片。

imshow(预览(imd));

街道形象

只阅读第二和第三个图像,一次一个。

I = 2:3 img = readimage(imds, I);结束

阅读所有四幅图,并查看第三幅图。

Imgs = readall(imds);imshow(一个{3})

蔬菜图片

限制

扩展功能

版本历史

在R2015b中引入