主要内容

blockedImage

由离散块组成的图像

    描述

    一种blockedImage对象是由离散块制成的图像。当图像或音量太大时,使用阻塞图像以适应内存。使用阻塞图像,您可以执行处理而不耗尽内存。

    创建

    描述

    创建只读BlockedImage对象

    例子

    bim = blockedimage(创建一个blockedImage来自指定源的对象。是内存数字,分类或塑造数组或指向文件或文件夹的字符向量或字符串标量。

    bims = blockedimage(来源创建一系列blockedImage来自指定源的对象。来源是一个单元格数组字符向量,或指向文件的字符串数组,或文件集对象。的长度BIMS.等于来源的数量来源

    ___= BlockedImage(___名称,价值创建一个blockedImage对象,使用名称值对设置对象属性。

    创建可写的blockedimage对象

    wbim = blockedImage (目的地尺寸blocksizeinitialValue“模式”,“w”)创造一个可写的blockedImage对象。

    若要创建表示单个分辨率级别的可写阻塞图像,请指定N-D图像blocksize作为一个1-by-n数字数组和尺寸作为指定图像大小的1 × n数字数组。initialValue是一个数值标量,分类, 要么塑造表示每个数组元素的初始值的值。

    若要创建表示多分辨率级别图像的可写阻塞图像,请指定尺寸作为一个L.——- - - - - -N数字阵列在哪里L.代表分辨率级别的数量。这blockedImage无论您指定的内容复制blocksize如果需要,对于附加级别。为了塑造数据,initialValue必须具有与数据相同的字段名。为了分类数据,initialValue必须与最终数据相同的分类类型。

    目的地initialValue参数确定所用的文件格式blockedImage

    • 文件夹名称(没有扩展) - 阻止图像创建文件夹并使用images.blocked.BINBlocks适配器每块编写一个二进制文件,填充数字initialValue.为了分类塑造值时,阻塞的图像将使用images.blocked.matblocks.适配器。看适配器为更多的信息。

    • 文件名.tif.要么.tiff.文件扩展 - 阻止图像使用images.blocked.tiff.适配器写入TIFF文件。初始值必须是uint8INT8.uint16int16uint32int32要么逻辑

    • 文件名.H5扩展-阻止图像使用images.blocked.h5.适配器编写HDF5文件。初始值必须是uint8INT8.uint16int16uint32int32, 要么

    • [](空括号)-阻止图像使用images.blocked.inmemory.把图象存储在存储器中。

    要为其他输出格式指定自定义适配器,请使用适配器参数。

    输入参数

    全部展开

    图像数据的来源,指定为内存数字数组,分类数组,或塑造阵列,或一个字符数组或字符串标量指定文件或文件夹的名称。

    被阻止的图像支持这些文件格式:金宝app

    • 单个TIFF文件。如果该文件包含多个IFD(图像文件目录),则blockedImage将IFDS视为多个分辨率级别。

    • 可以被读取的任何图像文件Imread.

    • 任何由工具箱包含的适配器创建的任何源适配器

    图像数据的来源,指定为单元数组字符向量,字符串阵列,或一个文件集对象。

    用于包含数据的文件或文件夹,指定为字符矢量或字符串标量。

    每个分辨率级别的图像大小,指定为整数值L.——- - - - - -N矩阵,L.是分辨率级别的数量和N为图像的维数。这blockedImage对象总排序尺寸以像素数量的降序,无论如何如何存储级别。

    块的大小,指定为一个1-by-n数字数组。

    卸载块的默认像素值,指定为标量类型针对者.被阻止的图像使用此值填充块,该块在底层源中没有数据。默认值为0.对于数字类型,<未定义>对于分类,和标量塑造为了塑造数据。

    属性

    全部展开

    被封锁图像对象的读写界面,指定为这些适配器之一。您还可以使用自己的适配器创建自己的适配器images.blocked.adapter.类。

    适配器 描述
    images.blocked.BINBlocks 将每个块存储为文件夹中的二进制blob文件。
    images.blocked.genericimage. 在单个图像中存储块。
    images.blocked.genericImageBlocks. 将每个块存储为文件夹中的图像文件
    images.blocked.h5. 存储块在单一HDF5图像
    images.blocked.H5Blocks 将每个块存储在文件夹中的HDF5文件
    images.blocked.inmemory. 在主存的变量中存储块
    images.blocked.JPEGBlocks 将每个块存储在文件夹中的JPEG文件
    images.blocked.matblocks. 将每个块存储在文件夹中的垫文件。
    images.blocked.PNGBlocks 将每个块以PNG文件的形式存储在文件夹中。
    images.blocked.tiff. 在单个TIFF文件中存储块。

    源文件中指定的文件的备用文件系统路径,指定为字符串包含一行或多行的数组。每一行指定一组等价的根路径。

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

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

    块的大小,指定为整数值,L.——- - - - - -N矩阵,L.是分辨率级别的数量和N是尺寸的数量。blocksize用作随时使用时间加载到主存储器中的数据的默认数据。它是可以用造成操纵的最小数据单位blockedImage界面。如果您指定blocksize少于N方面,blockedImage的元素填充图像尺寸财产。

    无法设置此属性模式被设置为'W'

    数据类型:

    此属性是只读的。

    像素数据类型,指定为a字符大批,字符串大批,塑造要么分类数组,L.元素。L.是分辨率级别的数量。阵列中的每个元素是来自相应分辨率级别的像素的数据类型。值是:“逻辑”“INT8”“uint8”“int16”“uint16”“int32”“uint32”“单身”, 和“双倍的”

    数据类型:字符|字符串

    此属性是只读的。

    指定为指定类型的数字标量针对者, 一种分类分类图像的价值,或者塑造.这blockedImage对象使用此值填充底层源中没有数据的块。默认值因数据类型不同而不同:0.对于数字类型,<未定义>对于分类,和标量塑造

    数据类型:||INT8.|int16|int32|uint8|uint16|uint32|字符|分类|塑造

    此属性是只读的。

    I / O块大小的图像源,指定为整数值,L.——- - - - - -N矩阵在哪里N是尺寸的数量和L.是解决方案级别的数量。ioblocksize.适配器用于从图像源读取的底层I / O块大小的大小。这代表了可以写入或读取的最小数据单位。此只读属性反映了底层图像源的格式。

    笔记

    你可以设置blocksize任何价值。这blockedImage对象是源I / O块的适当读数,裁剪,拼接和缓存,以确保有效的I / O.

    数据类型:

    对象的当前读写模式,指定为'r'用于读取模式和'W'写模式。

    您只能设置模式'W'创建对象时。您可以更改值模式'W''r',这时就不可能再写了。你不能改变模式'r''W'

    当打开一个blockedImage在“写入模式”中,您还必须指定值的值图片尺寸blocksize, 和初始值特性。

    数据类型:字符

    此属性是只读的。

    图像中的尺寸数,指定为正整数。对于具有不同数量尺寸的多分辨率级别图像,NumDimensions是所有级别的最大值。如果需要,阻塞的图像将使用单维度扩展其他级别。

    数据类型:

    此属性是只读的。

    图像分辨率级别的数量,指定为正整数。对于单分辨率图像,值是1;用于多分辨率图像L.水平,价值是L.

    数据类型:

    此属性是只读的。

    每一层的图像大小,指定为整数值L.——- - - - - -N矩阵,L.是分辨率级别的数量和N为图像的维数。这blockedImage对象总排序尺寸以像素数量的降序,无论如何如何存储级别。

    数据类型:

    此属性是只读的。

    大小表示为块数,指定为整数值L.——- - - - - -N矩阵,N是尺寸的数量和L.是解决方案级别的数量。这个属性取决于blocksize财产。该值包括部分块。

    数据类型:

    此属性是只读的。

    图像数据的来源,指定为内存数字,分类, 要么塑造数组,或字符串标量或字符矢量指定文件或文件夹名称。

    数据类型:字符串

    作为图像结束边缘的世界坐标,指定为一个L.——- - - - - -N数字矩阵,其中L.是分辨率级别的数量和N是尺寸的数量。默认情况下,该值是大小+ 0.5对于每个维度和级别,生成一个单位宽的像素。像素中心的世界坐标与第一层像素下标位置一致。

    数据类型:

    图像的坐标的图像的起跑边缘,指定为aL.——- - - - - -N数字矩阵,其中L.是多少层和N是尺寸的数量。默认情况下,起始边缘值是0.5在每个维度和层次。

    数据类型:

    与图像关联的用户数据,指定为a塑造.此字段可以是空的。您可以随时更新值。要使这个值持续到源,写下blockedImage的文件函数,或在创建对象时指定数据作为参数。

    数据类型:塑造

    对象功能

    应用 封锁图像的过程块
    作物 创建裁剪版本的阻塞图像
    blocksub2sub. 将块下标转换为像素下标
    收集 将块收集到当前工作区
    getBlock 读取特定的阻塞图像块
    GetRegion. 读取阻塞图像的任意区域
    setBlock 将数据放入特定的块图像中
    sub2blocksub. 将像素下标转换为阻止下标
    sub2world. 将像素下标转换为阻止下标
    WORLD2SUB. 将世界坐标转换为像素下标
    将图像数据写入新目的地

    例子

    全部收缩

    从工具箱中包含的示例图像创建阻塞图像。

    bim = blockedimage('tumor_091r.tif');

    在命令行中显示已阻止图像的详细信息。

    DISP(BIM)
    源:"/mathworks/devel/bat/Bdoc21a/build/matlab/toolbox/images/imdata/tumor_091R.tif" Adapter: [1x1 images. blockeblock . tiff] Size: [3x3 double] SizeInBlocks: [3x3 double] ClassUnderlying: [3x1 string] Settable properties BlockSize: [3x3 double]

    在图形窗口中查看被阻止的图像。

    BigimageShow(Bim)

    将数据读入工作区。对于本示例,请读取工具箱中包含的示例卷。

    DMRI = TIFFREADVOLUME(“mri.tif”);

    从卷创建一个阻塞的图像。

    bim = blockedimage(DMRI);

    在命令行中显示有关封锁图像的详细信息。

    DISP(BIM)
    blockedImage with properties: Read only properties来源:[128x128x27 uint8]适配器:[1x1 images.blocked.][1 1 1] ClassUnderlying: "uint8"可设置的属性BlockSize: [128 128 27]

    在示例图像的“工具箱”文件夹中创建图像的文件集。

    fs = matlab.io.datastore.FileSet (......fullfile (matlabroot'工具箱'“图片”'imdata'),......“文件扩展”,{'.jpg''.png'});

    从文件集中的图像中创建一系列阻塞图像。

    智能化系统= blockedImage (fs);

    显示被阻止的图像阵列的详细信息。

    disp(智能化)
    Source: 'Various' Adapter: [1x1 images.blocked.]GenericImage] ClassUnderlying:“不同”

    创建可向其写入数据的阻塞图像。控件中指定阻止图像的格式目的地参数。要写入内存,请指定一个空矩阵。您还必须指定图像的大小以及希望将图像分块到的块的大小。初始值参数取决于您在目标中指定的格式。要创建可写的阻塞图像,请指定'模式'参数的值'W'写模式。

    destination = [];imgsize = [5 7];blocksize = [2 2];initval = uint8(0);bim = blockedimage(目的地,Imgsize,blocksize,initval,“模式”'W');

    通过使用封锁图像中的指定块将数据写入块图像中的指定块setBlock对象的功能。这Blocksub.参数指定要编写数据的块的坐标。这blockdata.参数指定要写入指定块的数据。BlockData的大小必须与块大小匹配。

    blocksubs = [1 1];blockdata = ON(2,2,“uint8”);setBlock(BIM,BlockSub,BlockData)

    关闭图像以便书写。

    通过将“mode”参数设置为“r”读取,将被阻塞的图像切换到读取模式。

    bim.mode =.'r'
    bim = blockedImage with properties: Read only properties来源:[5x7 uint8]适配器:[1x1 images.blocked.]InMemory] Size: [5 7] SizeInBlocks: [3 4] ClassUnderlying: "uint8"可设置属性BlockSize: [2 2]

    通过使用使用的完整图像收集函数来收集所有单个块。

    harpimage =聚集(bim);

    在命令行中显示已阻止图像的详细信息。

    disp (fullImage)
    1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    从工具箱中包含的示例图像创建阻塞图像。

    bim = blockedimage('tumor_091r.tif');BigimageShow(Bim)

    在最佳级别指定像素中心之间的距离。从可用的原始数据获得的此信息https://camelyon17.grand-challenge.org/data/

    PEXT = 0.000226316;%(以毫米为单位)

    假设第一个像素的左边缘在(0,0)开始。

    worldstart = zeros(bim.numlevels,bim.numdimensions);

    仅使用空间维度,计算最优分辨率的最后一个像素的右下边缘。已知每个像素中心之间的距离,将距离乘以像素数。

    worldend = bim.size(1,:) * pext;

    所有分辨率级别跨越同一个世界坐标。

    worldEnd = repmat(worldEnd, [bim.])NumLevels, 1]);

    第三维保持颜色通道。更新像素边缘的世界坐标,以将它们驻留在整数值(例如1,2和3)上,单位范围。

    Worldstart(:,3)= 0.5;Worldend(:,3)= 3.5;

    使用更新的坐标查看图像。

    bim = blockedimage('tumor_091r.tif'......“WorldStart”worldStart,'worldend', worldEnd);图h = bigimageshow(bim);标题(用毫米来衡量的

    在R2021A介绍