主要内容

pixelLabelDatastore

像素标签数据的数据存储

描述

你可以用PixelLabelDatastore对象读取像素标签数据进行语义分割。

将像素标号数据从PixelLabelDatastore, 使用函数。此函数返回一个类别数组,其中包含分配给每个(一世j)像素位置或(一世jK.)体素位置。

创建

创建一个PixelLabelDatastore对象使用pixelLabelDatastore这里描述的函数。一旦创建了对象,就可以使用访问和管理数据的函数。可以使用点符号来修改ReadSizeReadFcn特性。

描述

例子

pxds = pixelLabelDatastore (gTruth创建一个PixelLabelDatastore对象从一个groundTruth对象或数组groundTruth对象。

pxds = pixelLabelDatastore (位置Classnames.pixelLabelIDs创建一个PixelLabelDatastore从存储像素标签数据的图像文件中的对象,在指定的文件夹或文件中位置.该函数使用像素id创建对象,像素id将图像像素标签值映射到类名。

pxds = pixelLabelDatastore (___、名称、值)创建一个PixelLabelDatastore对象使用名称-值对参数来设置一个或两个ReadSizeAlternateFileSystemRoots特性。对于图像文件输入,您还可以使用名称值对参数来设置ReadFcn属性或指定选项关于要包含在数据存储中的文件。可以指定多个名称-值对。将每个属性名用引号括起来。

例如,pixelLabelDatastore (loc,名称、id ReadSize, 8日FileExtensions, png)创建一个只包含PNG图像的像素标签数据存储,并在每次调用时读取8个图像函数。

输入参数

全部展开

地面真实数据,指定为groundTruth对象或数组groundTruth对象。每个groundTruth对象包含有关数据源、标签定义列表以及一组基础真值标签的所有已标记标签的信息。

文件夹或图像文件名称,指定为字符向量,字符串数组或字符向量阵列。图像必须包含uint8数据。

位置 描述
字符向量,字符串数组 文件夹名称。指定文件夹的子文件夹中的文件不会自动包含在数据存储中。该数据存储只包含支持的文件格式的图像,而忽略任何其他格式。金宝app的支持的文件格式列表金宝appimformats函数。
字符向量的单元格数组 多个图像的文件名。

pixelLabelDatastore展开文件名并存储完整的文件路径文件财产。

指定时可以使用通配符(*)位置.此字符表示所有匹配文件或匹配文件夹中的所有文件都包含在数据存储中。

如果文件不在当前文件夹中,则必须包含完整路径或相对路径。

如果文件在本地不可用,那么文件或文件夹的完整路径必须是国际化资源标识符(IRI),例如hdfs: / /主机名portnumber/path_to_file.有关使用A的信息数据存储Amazon S3™和HDFS™,参见使用远程数据

例子:“file1.jpg”

例子:'../dir/data/file1.png'

例子:{'c:\ dir \ data \ file1.tif','c:\ dir \ data \ file2.tif'}

例子:“C: \ dir \ data \ * . jpg”

数据类型:字符|细胞

类名,指定为字符串或字符向量的单元格数组。pixelLabelDatastore将名称转换为单元格数组并将名称存储在Classnames.财产。

例子:[“天空”“草”“建设”“人行道”]

将像素标签映射到的IDClassnames.,指定为向量m- × 3矩阵,列向量的单元格数组,或的单元格数组m3矩阵。取值范围为整数[0,255]。m-by-3矩阵仅支持RGB图像。金宝app

格式 描述
向量 向量的长度必须等于类名的数量。值必须唯一。
m-By-3矩阵 m对应于类名的数量。每行包含一个3元素向量,表示与每个类名相关联的RGB像素值。向量必须是唯一的。使用这种格式的像素标签数据存储为RGB图像。

柱载体的单元阵列

单元阵列的m3矩阵

使用单元格数组将多个像素标签id映射到一个类名。

名称-值对的观点

指定可选的逗号分离对名称,价值参数。的名字是参数名称和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“IncludeSubfolders”,真的

包括子文件夹,指定为逗号分隔对,由“IncludeSubfolders”错误的0.), 或者真正的1).指定真正的包括每个文件夹中的所有文件和子文件夹或错误的只包含每个文件夹中的文件。

包括upfolders.指定地面真实数据时不支持参数金宝appgTruth

要包含在数据存储中的文件的文件扩展名,指定为逗号分隔对,由“FileExtensions”和字符矢量,字符向量,字符串标量或字符串数​​组的字符矢量。默认情况下,数据存储区包含包含所有扩展的文件金宝appimformats函数。

过滤义指定地面真实数据时不支持参数金宝appgTruth

例子:[" png”“gif”“bmp”)

属性

全部展开

此属性是只读的。

数据存储中包含的文件,指定为字符向量或字符向量的单元数组。每个字符矢量都是文件的完整路径。当你创建一个PixelLabelDatastore对象,使用位置参数设置此属性。

此属性是只读的。

类名,指定为字符向量的单元格数组。

每个呼叫中​​读取的最大图像文件数函数,指定为正整数。

备用文件系统根路径,指定为逗号分隔的对'alternedfilesystemroots'和字符串矢量或单元格数组。用'alternedfilesystemroots'当您在本地机器上创建数据存储,但需要访问和处理另一台机器(可能是不同的操作系统)上的数据时。此外,当使用Parallel Computing Toolbox™和MATLAB®并行服务器™,数据存储在本地计算机上,使用不同平台云或群集计算机上可用的数据副本,您必须使用'alternedfilesystemroots'关联根路径。

  • 要关联一组等同于彼此的根路径,请指定'alternedfilesystemroots'作为串矢量。例如,

    [“z:\ datasets”,“/ mynetwork / datasets”]

  • 要关联多组等同于数据存储的根路径,请指定'alternedfilesystemroots'作为包含多行的单元格数组,其中每一行表示一组等价的根路径。将单元格数组中的每一行指定为字符串向量或字符向量的单元格数组。例如:

    • 指定'alternedfilesystemroots'作为字符串向量的单元格数组。

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

    • 或者,指定'alternedfilesystemroots'作为字符向量的单元数组的单元数组。

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

的价值'alternedfilesystemroots'必须满足以下条件:

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

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

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

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

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

例子:[“z:\ datasets”,“/ mynetwork / datasets”]

数据类型:字符串|细胞

读取像素标记图像数据的函数,指定为函数句柄。自定义读函数必须以图像文件名作为输入,然后将相应的像素标记数据输出为数据类型的分类矩阵、逻辑矩阵或数字矩阵uint8.例如,如果CustomReader.是指定的读取图像数据的函数,则它必须具有如下类似的签名:

函数c = customReader(文件名)...结尾
如果read函数有多个输出参数,则只使用第一个参数。其余的则被忽略。

ReadFcn属性在指定地面真值数据时不受支持金宝appgTruth

例子:@CustomReader.

对象功能

结合 将数据与多个数据存储组合
countEachLabel 计数像素或盒标签的出现次数
哈迪塔 确定数据是否可用于从数据存储读取
numpartitions 一个数据存储的分区数
分区 将标签数据存储分区
预览 在数据存储区中读取第一行数据
从数据存储中读取数据
读物 读取数据存储中的所有数据
readimage 读取指定的像素标号数据文件
重置 将数据存储重置为初始状态
洗牌 返回DataStore的Shuffled版本
变换 转换数据存储
子集 创建数据存储或文件集的子集
isPartitionable 确定数据存储是否可分区
isShufflable. 确定数据存储是否会破坏

例子

全部收缩

在图像上叠加像素标签数据。

设置图像和像素标签数据的位置。

dataDir = fullfile (toolboxdir ('想象'),“visiondata”);imDir = fullfile (dataDir,'建筑');pxdir = fullfile(datadir,'buildingpixellabels');

创建镜像数据存储。

IMDS = imageageAtastore(IMDIR);

创建像素标签数据存储。

一会= [“天空”“草”“建筑”“人行道”];Pixellabelid = [1 2 3 4];pxds = pixellabeldataStore(PXDIR,ClassNames,Pixellabelid);

读取图像和像素标签数据。读(PXDS)返回一个分类矩阵,C.元素c(一世j)为分配给位置为l(一世j).

我=读(imd);C =阅读(pxds);

显示标签类别C

类别(C {1})
ans =.4x1细胞{'sky'} {'grass'} {'building'} {'sidewalk'}

覆盖并显示像素标签数据到图像上。

B = labeloverlay(我,C {1});图imshow (B)

图中包含一个坐标轴。轴包含一个image类型的对象。

指定3-D卷和像素标签数据的位置。该数据是大脑的标记为3-D MRI扫描。

dataDir = fullfile (toolboxdir (“图片”),'imdata');imDir = fullfile (dataDir,“BrainMRILabeled”“图片”);pxdir = fullfile(datadir,“BrainMRILabeled”“标签”);

指定自定义readfcn。此示例指定调用的函数samplePXDSMatReader(在示例的最后定义)从. mat图像文件中读取3d图像数据。

matReader = @samplePXDSMatReader;

创建镜像数据存储。

imd = imageDatastore (imDir,“FileExtensions”“.mat”'readfcn', matReader);

创建像素标签数据存储。

一会= [“水肿”“nonEnhancingTumor”“enhancingTumour”];Pixellabelid = [1 2 3];pxds = pixellabeldataStore(pxdir,clussnames,pixellabelid,“FileExtensions”“.mat”'readfcn', matReader);

读取卷和像素标签数据。L.分类矩阵在哪里L (i, j, k)是分配给的分类标签V (i, j, k)

V =阅读(imd);L =阅读(pxds);

显示标签类别。

类别(L {1})
ans =.3×1细胞{'水肿'}{' nonenhingtumor '} {' enhingtumor '}

可视化结果使用labelvolshow

h = labelvolshow (L {1}, V);

这个例子定义了一个辅助函数,samplePXDSMatReader,从图像文件中读取3d图像数据。这个函数加载一个. mat文件并返回该文件中保存的第一个变量。

函数data = samplePXDSMatReader(filename) inp = load(filename);f =字段(输入);=输入的数据。(f {1});结尾

提示

  • 一种pixelLabelDatastore按字典顺序存储文件。例如,如果您有12个文件名为“file1.jpg”“file2.jpg”、……“file11.jpg”,“file12.jpg”,则文件按以下顺序存储:

    “file1.jpg”“file10.jpg”“file11.jpg”“file12.jpg”“file2.jpg”“file3.jpg”...'file9.jpg'

    相比之下,一个imageDatastore按照文件被添加到数据存储中的顺序存储文件。如果您同时读取地面真实图像和像素标签数据,那么您可能会遇到图像和标签之间的不匹配。如果出现这种情况,那么重命名像素标签文件,使它们具有正确的顺序。例如,重命名“file1.jpg”、……'file9.jpg'“file01.jpg”,......,'file09.jpg'

  • 从a中提取语义分段数据groundTruth对象生成的视频贴图应用程序,使用PixellabeltrainingData.函数。

在R2017B中介绍