主要内容

bigimageDatastore

(不推荐)用于管理大图像数据块的数据存储

这个bigimageDatastore不建议使用对象。请使用blockedImageDatastore对象。有关更多信息,请参见兼容性的考虑

描述

A.bigimageDatastore对象管理属于一个或多个图像块的图像块集合大图对象bigimageDatastore类似于imageDatastore,它管理一组不相关的映像。

创建

描述

创建在整个图像上读取块的数据存储

bigds = bigimageDatastore(图片)创建以一个或多个图像块的最精细分辨率级别管理图像块集合的数据存储大图物体,图像

bigds = bigimageDatastore(图片、水平)创建管理一个或多个图像块集合的数据存储大图物体,图像,在指定的分辨率级别,水平

实例

bigds = bigimageDatastore(图像、水平名称、值)还使用名称-值对设置一个或多个属性除了BlockLocationSet.可以指定多个名称-值对。将每个属性名用引号括起来。

例子:bigimageDatastore(bigimg,3,'BlockSize',[128],'IncompletedBlocks','pad')创建一个数据存储,从大图像中读取大小为128 × 128的3级分辨率块bigimg和零焊盘部分边缘块。

创建在指定位置读取块的数据存储

实例

bigds = bigimageDatastore(图像、‘BlockLocationSet BlockLocationSet)创建从其中读取块的数据存储大图物体,图像,使用指定的分辨率级别、块大小和块位置BlockLocationSet

bigds = bigimageDatastore(图像、‘BlockLocationSet BlockLocationSet,名称、值)也使用名称-值对来设置一个或多个BorderSize,IncompleteBlocks,PadMethod,ReadSize属性。您可以指定多个名称-值对。请将每个属性名称用引号括起来。

例子:bigimageDatastore (bigimg BlockLocationSet,劳工统计局,ReadSize, 4)创建一个数据存储,一次从大图像中读取四个块bigimg根据位置、块大小和分辨率等级指定美国劳工统计局

属性

全部展开

块位置,指定为块定位集对象。

块偏移量,指定为1乘2的正整数形式的向量[numrows numcols]

默认值为BlockSize。在调用时重叠块,指定较小的值。若要在块之间添加间隙,请指定较大的值。

读取数据的块大小,指定为以下形式的正整数的1×2向量[numrows numcols]。默认值等于BlockSize第一个大图像的属性图像在中的第一个分辨率级别水平

边框大小,指定为窗体的1乘2非负整数向量[m n].增加了功能M每个块上方和下方的行以及N每个块的左边和右边的列,其中包含相邻块的数据。对于位于图像边缘的块,数据是根据填充的IncompleteBlocks。默认情况下,数据存储不向块添加边框。

为客户提供区块的大图像bigimageDatastore,指定为B元向量的大图对象。要从相同的大图像读取不同的分辨率级别,请在向量中多次指定同一图像。

方法处理小于的边块BlockSize,指定为这些值之一。

价值

意义

“相同”

返回与边块大小相同的数据。

“排除”

对?的调用中不包括边缘块

“垫”

将不完整的块填充到与相同的大小BlockSize使用指定的pad方法PadMethod

从每个大图像块的分辨率水平图像,指定为正整数标量或aB-正整数的元素向量。如果指定标量值,则所有大图像都会以相同的分辨率级别向数据存储提供块。

数据类型:

填充方法的不完整边块,指定为这些值之一。默认情况下,数据存储用0和分类块失踪

价值

意义

数字标量

用常量元素填充数字数组。

字符串标量

将类别数组填充到基础资产的性质大图

“复制”

通过重复数组的边框元素填充。

“对称”

带有反射镜的阵列。

每次调用要返回的块数,指定为正整数。

目标函数

结合 合并来自多个数据存储的数据
countEachLabel 为每个类计数像素标签的数量bigimageDatastore
hasdata 确定数据是否可读取
numpartitions 数据存储分区数
分区 分区bigimageDatastore
预览 预览数据存储中的数据子集
读取的数据bigimageDatastore
readRelative 从中读取相邻块bigimageDatastore使用相对位置
重置 将数据存储重置为初始状态
洗牌 在数据存储中洗牌数据
变换 转换数据存储
isPartitionable 确定数据存储是否可分区
易怒 确定数据存储是否可洗牌

例子

全部折叠

创建一个大图使用CAMELYON16数据集中经过修改的图像“tumor_091.tif”。原始图像是包含肿瘤组织的淋巴结的训练图像。原始图像有8个分辨率等级,最好的等级分辨率为53760 × 61440。修改后的图像只有三个粗分辨率。修改后的图像的空间参考已经被调整,以加强一致的宽高比,并在每一层配准特征。

bim = bigimage (“肿瘤_091R.tif”);

的默认块大小大图在每个分辨率级别。块大小是一个2元素向量,形式为[numrows,numcols].

t =表((1:3)’,荡妇。BlockSize,“VariableNames”, (“水平”“块大小”]);disp(t)
级别块大小为1 1024 1024 2 1024 3 1024

显示大图通过使用bigimageshow函数。

bigimageshow(bim);

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

创建一个bigimageDatastore在决议级别1。指定非默认块大小。将数据存储设置为一次读取四个块。

bimds = bigimageDatastore (bim 2“BlockSize”(512 512),“ReadSize”4)
bimds = bigimageDatastore with properties: ReadSize: 4 BorderSize: [0 0] PadMethod: 0 Images: [1x1 bigimage] Levels: 2 BlockSize: [512 512] blockoffset: [512 512] IncompleteBlocks: 'same' BlockLocationSet: [1x1 BlockLocationSet]

从数据存储中读取一批数据。注意,第三个块是部分边缘块,其大小小于内部块。以蒙太奇的方式显示返回的图像补丁。蒙太奇显示带有较厚边框的第三块,因为该块的宽度小于完整块的宽度。

块=阅读(bimds)
块=4×1单元阵列{512x512x3 uint8} {512x512x3 uint8} {512x512x3 uint8}
蒙太奇(块,“大小”[1 bimds。ReadSize),“BorderSize”5,“写成BackgroundColor”,“k”);

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

从数据存储中读取下一批数据,并以蒙太奇的形式显示返回的图像补丁。蒙太奇显示带有较厚边框的部分块,因为块的尺寸小于整个块的尺寸。

块=阅读(bimds)
块=4×1单元阵列{512x512x3 uint8}{512x316x3 uint8}{226x512 x3 uint8}{226x512 x3 uint8}
蒙太奇(块,“大小”[1 bimds。ReadSize),“BorderSize”5,“写成BackgroundColor”,“k”);

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

从数据存储中读取最后一批数据。read操作返回包含唯一剩余补丁的部分批处理。显示补丁。

块=阅读(bimds)
块=1 x1单元阵列{226x316x3 uint8}
蒙太奇(块,“大小”[1 bimds。ReadSize),“BorderSize”5,“写成BackgroundColor”,“k”);

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

创建一个大图使用CAMELYON16数据集中经过修改的图像“tumor_091.tif”。原始图像是包含肿瘤组织的淋巴结的训练图像。原始图像有8个分辨率等级,最好的等级分辨率为53760 × 61440。修改后的图像只有三个粗分辨率。修改后的图像的空间参考已经被调整,以加强一致的宽高比,并在每一层配准特征。

bim = bigimage (“肿瘤_091R.tif”);

显示大图通过使用bigimageshow函数。

h = bigimageshow (bim);

在最粗糙的分辨率级别创建掩码,保留原始的空间引用信息。

clevel = bim.CoarsestResolutionLevel;clevel imcoarse = getFullLevel (bim);stainMask = ~ imbinarize (rgb2gray (imcoarse));bmask = bigimage (stainMask,“SpatialReferencing”bim.SpatialReferencing (clevel));

属性中要读取的块的位置大图通过使用选择区块位置函数。设置块大小为256 × 256像素。通过指定。选择在掩码定义的ROI中至少占75%的块“InclusionThreshold”名称-值对的论点。默认情况下,选择区块位置从大图像的最佳分辨率选择块。

t=0.75;块大小=[256];块集=选择块位置(bim,“块大小”blockSize,...“面具”bmask,“InclusionThreshold”t);

创建一个bigimageDatastore,每次从指定的位置读取4个块块定位集

bimds = bigimageDatastore(荡妇,“BlockLocationSet”blockSet,“ReadSize”,4);

要预览数据存储读取的修补程序,请在原始修补程序上显示遮罩大图使用相同的块大小和包含阈值。覆盖层用绿色突出显示在蒙版定义的ROI中至少75%的补丁。

显示掩码(h、bmask、,“BlockSize”blockSize,“InclusionThreshold”, t)

从数据存储中读取第一批数据,并以蒙太奇的形式显示返回的图像补丁。这些补丁的内容与覆盖层的绿色块相匹配。

块=读取(BIMD);蒙太奇(块,“大小”[1 bimds。ReadSize),“BorderSize”5,“写成BackgroundColor”,“k”);

创建一个大图使用CAMELYON16数据集中经过修改的图像“tumor_091.tif”。原始图像是包含肿瘤组织的淋巴结的训练图像。原始图像有8个分辨率等级,最好的等级分辨率为53760 × 61440。修改后的图像只有三个粗分辨率。修改后的图像的空间参考已经被调整,以加强一致的宽高比,并在每一层配准特征。

bim = bigimage (“肿瘤_091R.tif”);

显示整个大图在最好的分辨率。

bshow=bigimageshow(bim);

从最精细的关卡中指定4个[x y]方块位置。前两个块在垂直方向重叠。第二个方块是水平相邻的。

xyLocations = [...2800 1300;...2800 1400;...1500 2400;...1800 2400);blockSize = [300300];

所有块都来自同一图像。请将图像编号指定为1.对所有块。

imageNumber=[1]';

创建一个块定位集存储块位置的对象。

locationSet=blockLocationSet(图像编号、xyLocations、blockSize);

创建一个bigimageDatastore对象,该对象从大图像中读取块bim的指定位置块定位集对象。

bimds = bigimageDatastore(荡妇,“BlockLocationSet”, locationSet);

从数据存储中一次读取两个块,并以蒙太奇方式显示它们。

bimds。ReadSize = 2;Hasdata (bimds)图形块=读取(bimds);蒙太奇(块,“BorderSize”5,“写成BackgroundColor”,“b”);终止

兼容性的考虑

全部展开

不建议从R2021a开始

参考文献

[1]Bejnordi, Babak Ehteshami, Mitko Veta, Paul Johannes van Diest, Bram van Ginneken, Nico Karssemeijer, Geert Litjens, Jeroen A. W. M. van der Laak, et al.“深度学习算法检测乳腺癌女性淋巴结转移的诊断评估”。《美国医学会杂志》318年,没有。22(2017年12月12日):2199-2210。https://doi.org/10.1001/jama.2017.14585。

在R2019b中引入