主要内容

bigimageDatastore

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

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

描述

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

创建

描述

创建读取整个映像块的数据存储

bigds = bigimageDatastore(images)创建一个数据存储,以一个或多个图像块的最佳分辨率级别管理图像块的集合bigimage对象,图片

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

例子

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

例子:bigimageDatastore (bigimg 3“BlockSize”,(128 128),“IncompleteBlocks”、“垫”)创建一个数据存储,从大映像中读取分辨率为3级的128 × 128大小的块bigimg和零垫部分边块。

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

例子

bigds = bigimageDatastore(images,'BlockLocationSet', BlockLocationSet)创建用于读取数据块的数据存储bigimage对象,图片参数指定的分辨率级别、块大小和块位置BlockLocationSet

bigds = bigimageDatastore(images,'BlockLocationSet', BlockLocationSet,名称,值还使用名称-值对来设置一个或多个BorderSizeIncompleteBlocksPadMethod,ReadSize属性。可以指定多个名称-值对。将每个属性名用引号括起来。

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

属性

全部展开

块位置,指定为blockLocationSet对象。

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

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

读取数据的块大小,指定为1 × 2形式的正整数向量[numrows numcols].缺省值为TheBlockSize中的第一个大图像的属性图片在第一个分辨率级别水平

边框大小,指定为该形式的1 × 2非负整数向量(mn).函数添加每个块的上面和下面的行n每个块左右的列,其中包含来自相邻块的数据。对于位于图像边缘的块,数据将根据IncompleteBlocks.默认情况下,数据存储不为块添加边框。

提供块的大图像bigimageDatastore,指定为b的-元素向量bigimage对象。要从相同的大图读取不同的分辨率级别,请在向量中多次指定相同的图像。

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

价值

意义

“相同”

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

“排除”

不包括边缘块在调用

“垫”

将不完整的块填充为相同的大小BlockSize所指定的填充方法PadMethod

从每个大图像中的块的分辨率级别图片,指定为正整数标量或b-element正整数向量。如果指定一个标量值,那么所有大映像都以相同的分辨率向数据存储提供块。

数据类型:

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

价值

意义

数字标量

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

字符串标量

类中的指定类填充类别数组底层的属性bigimage

“复制”

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

“对称”

带有自身镜像的衬垫阵列。

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

对象的功能

结合 组合来自多个数据存储的数据
countEachLabel (不推荐)每类像素标签的计数bigimageDatastore对象
hasdata 确定是否有数据可以读取
numpartitions 数据存储分区数
分区 (不推荐)分区bigimageDatastore
预览 预览数据存储中的数据子集
(不推荐)从bigimageDatastore
readRelative (不推荐)读取相邻块bigimageDatastore使用相对位置
重置 将数据存储重置为初始状态
洗牌 Shuffle数据存储中的数据
变换 变换数据存储
isPartitionable 确定数据存储是否可分区
isShuffleable 确定数据存储是否可洗牌

例子

全部折叠

创建一个bigimage使用CAMELYON16数据集中图像“tumor_091.tif”的修改版本。原始图像是包含肿瘤组织的淋巴结训练图像。原始图像有8个分辨率级别,最高分辨率为53760 × 61440。修改后的图像只有三个粗分辨率等级。修改后的图像的空间引用已经进行了调整,以强制保持一致的纵横比,并在每个级别上注册特征。

Bim = bigimage(“tumor_091R.tif”);

控件的默认块大小bigimage在每个分辨率级别。块大小为2元素向量,形式为[numrowsnumcols]。

T = table((1:3)',bim。BlockSize,“VariableNames”, (“水平”“块大小”]);disp (t)
级别块大小_____ ____________ 1 1024 1024 2 1024 1024 3 1024 1024

显示bigimage通过使用bigimageshow函数。

bigimageshow (bim);

图中包含一个轴对象。axis对象包含一个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]

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

Blocks = read(bimds)
块=4×1单元格数组{512x512x3 uint8} {512x512x3 uint8} {512x316x3 uint8} {512x512x3 uint8}
蒙太奇(块,“大小”[1 bimds。ReadSize),“BorderSize”5,“写成BackgroundColor”“k”);

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

从数据存储中读取下一批数据,并将返回的图像补丁显示为蒙太奇。蒙太奇显示部分块与较厚的边界,因为块的尺寸小于完整块的尺寸。

Blocks = read(bimds)
块=4×1单元格数组{512x512x3 uint8} {512x316x3 uint8} {226x512x3 uint8} {226x512x3 uint8}
蒙太奇(块,“大小”[1 bimds。ReadSize),“BorderSize”5,“写成BackgroundColor”“k”);

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

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

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

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

创建一个bigimage使用CAMELYON16数据集中图像“tumor_091.tif”的修改版本。原始图像是包含肿瘤组织的淋巴结训练图像。原始图像有8个分辨率级别,最高分辨率为53760 × 61440。修改后的图像只有三个粗分辨率等级。修改后的图像的空间引用已经进行了调整,以强制保持一致的纵横比,并在每个级别上注册特征。

Bim = bigimage(“tumor_091R.tif”);

显示bigimage通过使用bigimageshow函数。

H = bigimageshow(bim);

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

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

中要读取的块的位置bigimage通过使用selectBlockLocations函数。设置块大小为256 * 256像素。属性选择掩码所定义的ROI内至少有75%的块“InclusionThreshold”名称-值对参数。默认情况下,selectBlockLocations从大图的分辨率级别中选择块。

T = 0.75;blockSize = [256];blockSet = selectBlockLocations(bim,“BlockSize”blockSize,...“面具”bmask,“InclusionThreshold”t);

创建一个bigimageDatastore对象指定的位置一次读取四个块blockLocationSet

bim = bigimageDatastore(bim,“BlockLocationSet”blockSet,“ReadSize”4);

若要预览数据存储正在读取哪些补丁,请在原始掩码上显示掩码bigimage使用相同的块大小和包含阈值。覆盖层用绿色突出显示了至少75%在蒙版定义的ROI内的补丁。

showmask (h, bmask“BlockSize”blockSize,“InclusionThreshold”, t)

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

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

创建一个bigimage使用CAMELYON16数据集中图像“tumor_091.tif”的修改版本。原始图像是包含肿瘤组织的淋巴结训练图像。原始图像有8个分辨率级别,最高分辨率为53760 × 61440。修改后的图像只有三个粗分辨率等级。修改后的图像的空间引用已经进行了调整,以强制保持一致的纵横比,并在每个级别上注册特征。

Bim = bigimage(“tumor_091R.tif”);

显示整个bigimage在最好的分辨率水平。

Bshow = bigimageshow(bim);

从最精细的级别指定四个[x y]块位置。前两个方块在垂直方向上重叠。后两个块水平相邻。

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

所有的方块都来自同一个图像。指定映像号为1对于所有的块。

imageNumber = [1 1 1 1]';

创建一个blockLocationSet对象,该对象存储块位置。

locationSet = blockLocationSet(imageNumber,xyLocations,blockSize);

创建一个bigimageDatastore从大图中读取块的对象荡妇的指定地点blockLocationSet对象。

bim = bigimageDatastore(bim,“BlockLocationSet”, locationSet);

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

bimds。ReadSize = 2;Hasdata (bimds) figure blocks = read(bimds);蒙太奇(块,“BorderSize”5,“写成BackgroundColor”“b”);结束

参考文献

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

版本历史

R2019b引入

全部展开