主要内容

pixelLabelDatastore

像素标签数据的数据存储

描述

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

从对象中读取像素标签数据PixelLabelDatastore,可以使用函数。此函数返回一个类别数组,其中包含分配给每个(j)像素位置或(jk)体素位置。

创建

创建一个PixelLabelDatastore对象使用pixelLabelDatastore这里描述的函数。一旦创建了对象,就可以使用访问和管理数据的函数。可以使用点表示法修改ReadSize而且ReadFcn属性。

描述

例子

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

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

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

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

输入参数

全部展开

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

文件夹或图像文件名,指定为字符向量、字符串数组或字符向量的单元格数组。图像必须包含uint8数据。

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

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

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

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

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

例子:“file1.jpg”

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

例子:{“C: \ dir \ data \ file1.tif”,“C: \ dir \ data \ file2.tif”}

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

数据类型:字符|细胞

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

例子:["天空" "草地" "建筑物" "人行道"]

将像素标签映射到的id一会,指定为一个向量,an的单元格数组,或的单元格数组3矩阵。取值范围为[0,255]的整数。-by-3矩阵仅支持RGB图像。

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

列向量的单元格数组

单元阵列的3矩阵

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

名称-值参数

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

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:“IncludeSubfolders”,真的

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

IncludeSubfolders参数在指定基本事实数据时不支持gTruth

要包含在数据存储中的文件的文件扩展名,指定为逗号分隔的对,由“FileExtensions”以及字符向量、字符向量的单元格数组、字符串标量或字符串数组。默认情况下,该数据存储包括具有控件支持的所有扩展名的文件imformats函数。

FileExtensions参数在指定基本事实数据时不支持gTruth

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

属性

全部展开

此属性是只读的。

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

此属性是只读的。

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

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

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

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

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

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

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

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

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

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

的价值“AlternateFileSystemRoots”必须满足以下条件:

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

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

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

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

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

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

数据类型:字符串|细胞

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

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

ReadFcn属性在指定地面真相数据时不支持gTruth

例子:@customreader

对象的功能

结合 合并来自多个数据存储的数据
countEachLabel 计算像素或框标签的出现次数
hasdata 确定是否可以从数据存储中读取数据
numpartitions 一个数据存储的分区数
分区 分区一个标签数据存储
预览 读取数据存储中的第一行数据
从数据存储中读取数据
readall 读取数据存储中的所有数据
readimage 读取指定像素标签数据文件
重置 将数据存储重置为初始状态
洗牌 返回打乱的数据存储版本
变换 变换数据存储
子集 创建数据存储或文件集的子集
isPartitionable 确定数据存储是否可分区
isShuffleable 确定数据存储是否可洗牌

例子

全部折叠

在图像上覆盖像素标签数据。

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

dataDir = fullfile (toolboxdir (“愿景”),“visiondata”);imDir = fullfile (dataDir,“建筑”);pxDir = fullfile (dataDir,“buildingPixelLabels”);

创建映像数据存储。

imd = imageDatastore (imDir);

创建一个像素标签数据存储。

一会= [“天空”“草”“建筑”“人行道”];pixelLabelID = [1 2 3 4];一会,pxds = pixelLabelDatastore (pxDir pixelLabelID);

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

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

中显示标签类别C

类别(C {1})
ans =4 x1细胞{'天空'}{'草地'}{'建筑物'}{'人行道'}

将像素标签数据叠加并显示在图像上。

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

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

指定3d体积和像素标签数据的位置。这些数据是大脑的三维核磁共振扫描。

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

指定一个自定义的ReadFcn。此示例指定一个函数称为samplePXDSMatReader(在示例末尾定义),它从. mat图像文件读取3-D图像数据。

matReader = @samplePXDSMatReader;

创建映像数据存储。

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

创建一个像素标签数据存储。

一会= [“水肿”“nonEnhancingTumor”“enhancingTumour”];pixelLabelID = [1 2 3];pixelLabelID pxds = pixelLabelDatastore (pxDir,一会,“FileExtensions”“.mat”“ReadFcn”, matReader);

读取容量和像素标签数据。l是直言矩阵,在哪里L (i, j, k)是否指定了类别标签V (i, j, k)

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

显示标签类别。

类别(L {1})
ans =3×1细胞{'水肿'}{'nonEnhancingTumor'} {' enhancingtumor '}

可视化结果使用labelvolshow

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

这个例子定义了一个helper函数,samplePXDSMatReader,从图像文件中读取三维图像数据。这个函数加载一个. 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按照文件添加到数据存储的顺序存储文件。如果您同时读取一个ground truth图像和像素标签数据,那么您可能会遇到图像和标签之间的不匹配。如果出现这种情况,则重命名像素标签文件,使它们具有正确的顺序。例如,重命名“file1.jpg”、……“file9.jpg”“file01.jpg”、……“file09.jpg”

  • 从数据中提取语义分割数据groundTruth对象生成的贴标签机视频应用,使用pixelLabelTrainingData函数。

版本历史

介绍了R2017b

Baidu
map