主要内容

blockedImage

由离散块制成的图像

    描述

    一个blockedImage对象是由离散块组成的图像。当映像或卷太大,无法装入内存时,请使用阻塞映像。使用阻塞的映像,您可以在不耗尽内存的情况下执行处理。

    创建

    描述

    创建只读blockedImage对象

    例子

    bim = blockedImage(创建一个blockedImage从指定的源获取。源可以是内存中的数组,也可以是包含图像数据的文件或文件夹的名称。

    bims = blockedImage(来源的数组创建blockedImage对象。源可以是包含图像数据的文件或文件夹的集合。的长度智能化系统等于源的个数来源

    ___= blockedImage (___名称,值创建一个blockedImage对象,使用一个或多个名称-值参数来设置对象属性

    创建可写的blockedImage对象

    wbim = blockedImage(目的地大小blockSizeinitialValue、“模式”、“w”)创建一个可写对象blockedImage对象在一个或多个分辨率级别上。目的地指定可写数据的位置。大小表示每个分辨率级别的图像大小。initialValue指示每个数组元素的初始值。

    输入参数

    全部展开

    图像数据的来源,指定为数字数组、分类数组或结构数组,或指定文件或文件夹名称的字符向量或字符串标量。

    Blocked images支万博1manbetx持以下文件格式:

    • 单个TIFF文件。如果文件包含多个镜像文件目录(ifd),则需要使用blockedImage对象将ifd视为多个分辨率级别。

    • 可以读取的任何图像文件imread

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

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

    放置可写数据的位置,指定为字符向量或字符串标量。

    目的地类型 图像格式
    文件夹名称(不带文件扩展名)

    blockedImage对象创建文件夹,并将数据块作为文件存储在文件夹中。

    • 对于数字图像数据,blockedImage方法将每个块存储为二进制文件BINBlocks适配器。

    • 对于分类和结构图像数据,blockedImage将每个块作为MAT文件存储在文件夹中MATBlocks适配器。

    文件扩展名为TIF或TIFF

    blockedImage对象将数据存储为单个TIFF图像TIFF适配器。

    initialValue必须是数字或逻辑的数据类型uint8int8uint16int16uint32int32逻辑

    文件扩展名为H5

    blockedImage对象将数据存储为单个HDF5图像H5适配器。

    initialValue必须是数字数据类型uint8int8uint16int16uint32int32,或

    []

    blockedImage对象将数据作为变量存储在内存中InMemory适配器。

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

    每个分辨率级别的图像大小,指定为l——- - - - - -N正整数矩阵,其中l是分辨率等级的多少和N是图像的维数。的blockedImage对象总是进行排序大小按像素数降序排列,与如何排列无关存储级别。

    块的大小,指定为l——- - - - - -N正整数矩阵,其中l是分辨率等级的多少和N是维数。

    如果图像具有多个分辨率级别,则可以指定blockSize作为1 ×N向量对所有分辨率级别使用相同的块大小。

    例子:(64 128)为单个分辨率图像指定64 × 128像素的块大小

    例子:(128 128;64 64;32 32)为三种分辨率级别指定三种不同的块大小

    未加载块的默认像素值,指定为这些值之一。被阻塞的图像使用这个值来填充底层源中没有数据的块。

    • 数字标量。的数据类型initialValue属性的值ClassUnderlying财产。默认值为0

    • 绝对标量。默认值为<定义>

    • 结构使用与数据相同的字段名。默认值为<定义>

    属性

    全部展开

    阻塞映像对象的读写接口,指定为这些适配器对象之一。

    适配器 描述
    BINBlocks 将每个块存储为一个文件夹中的二进制文件
    GenericImage 在单个图像中存储块
    GenericImageBlocks 将每个块存储为一个文件夹中的图像文件
    H5 存储块在单个HDF5图像
    H5Blocks 将每个块存储为一个文件夹中的HDF5文件
    InMemory 将块存储在主存的变量中
    JPEGBlocks 将每个块存储为一个文件夹中的JPEG文件
    MATBlocks 将每个块作为一个MAT文件存储在一个文件夹中
    PNGBlocks 将每个块存储为一个文件夹中的PNG文件
    TIFF 将块存储在单个TIFF文件中

    属性创建自己的适配器images.blocked.Adapter类。

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

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

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

    块的大小,指定为l——- - - - - -N正整数矩阵,其中l是分辨率等级的多少和N是维数。BlockSize作为数据在任何时候加载到主存中以供使用的默认大小。它是可以被操作的最小的数据单位blockedImage接口。如果你指定BlockSize小于N维度,blockedImage元素中的元素填充图像大小财产。

    指定时不能指定此属性模式作为' w '

    数据类型:

    此属性是只读的。

    像素数据类型,指定为字符向量、字符串数组、结构数组或分类数组的单元格数组l元素。l分辨率级别的数目。数组中的每个元素都是对应分辨率级别的像素的数据类型。值:“逻辑”“int8”“uint8”“int16”“uint16”“int32”“uint32”“单身”,“替身”

    数据类型:字符|字符串

    此属性是只读的。

    的默认元素值,指定为类型的数值标量ClassUnderlying,一个分类的值,或结构体.的blockedImage对象使用此值填充底层源中没有数据的块。缺省值根据数据类型不同而不同:0对于数字类型,<定义>对于定类,和标量结构体

    数据类型:||int8|int16|int32|uint8|uint16|uint32|字符|分类|结构体

    此属性是只读的。

    映像源的I/O块大小,指定为l——- - - - - -N正整数矩阵,其中l是分辨率等级的多少和N是维数。IOBlockSize是适配器用于从映像源读取的底层I/O块大小。这表示可以写入或读取的最小数据单位。此只读属性反映底层图像源的格式。

    请注意

    你可以设置BlockSize到任何值。的blockedImage对象对源I/O块进行适当的读取、裁剪、拼接和缓存,以确保高效的I/O。

    数据类型:

    对象的当前读或写模式,指定为“r”对于读模式和' w '用于写模式。

    你只能设置模式' w '当您创建对象时。你可以改变的值模式' w '“r”,此时不可能再进行写操作。你无法改变模式“r”' w '

    当打开blockedImage在写模式下,还必须为图象尺寸BlockSize,InitialValue属性。

    数据类型:字符

    此属性是只读的。

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

    数据类型:

    此属性是只读的。

    图像分辨率级别的数目,指定为正整数。

    数据类型:

    此属性是只读的。

    每个级别的图像大小,指定为l——- - - - - -N正整数矩阵,其中l是分辨率等级的多少和N是图像的维数。的blockedImage对象总是进行排序大小按像素数降序排列,与如何排列无关存储级别。

    数据类型:

    此属性是只读的。

    大小表示为块的数量,指定为l——- - - - - -N正整数矩阵,其中l是分辨率等级的多少和N是维数。这个属性依赖于BlockSize财产。该值包括部分块。

    数据类型:

    此属性是只读的。

    图像数据的来源,指定为内存中的数值,分类,或结构体数组,或者作为字符串标量或字符指定文件或文件夹名称的向量。

    数据类型:字符串

    图像结束边缘的世界坐标,指定为l——- - - - - -N数字矩阵,l是分辨率等级的多少和N是维数。缺省值为尺寸+ 0.5对于每个维度和级别,产生一个单位宽的像素。像素中心的世界坐标与第一层像素下标位置一致。

    数据类型:

    图像开始边缘的世界坐标,指定为l——- - - - - -N数字矩阵,l是层数和N是维数。缺省情况下,起始边缘值为0.5在每个维度和层次上。

    数据类型:

    与映像关联的用户数据,指定为结构体.该字段可以为空。您可以随时更新该值。要使此值与源保持一致,请编写blockedImage文件函数,或在创建对象时将数据指定为参数。

    数据类型:结构体

    对象的功能

    应用 处理阻塞图像的块
    作物 创建裁剪版本的阻塞图像
    blocksub2sub 将块下标转换为像素下标
    收集 收集块到当前工作区
    getBlock 读取被阻塞图像的特定块
    getRegion 读取阻塞图像的任意区域
    setBlock 将数据放到特定的块中
    sub2blocksub 将像素下标转换为块下标
    sub2world 将像素下标转换为块下标
    world2sub 将世界坐标转换为像素下标
    将阻塞的图像数据写入新的目标

    例子

    全部折叠

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

    bim = blockedImage(“tumor_091R.tif”);

    在命令行上显示阻塞映像的详细信息。

    disp (bim)
    blockdimage with properties:只读属性来源:"/mathworks/devel/bat/Bdoc22a/build/matlab/toolbox/images/imdata/tumor_091R.tif"适配器:[1x1 images.blocked. tiff]大小:[3x3 double] SizeInBlocks: [3x3 double] ClassUnderlying: [3x1 string]可设置属性BlockSize: [3x3 double]

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

    bigimageshow (bim)

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

    dmri = tiffreadVolume(“mri.tif”);

    从卷创建一个阻塞映像。

    bim = blockedImage(dmri);

    在命令行上显示有关阻塞映像的详细信息。

    disp (bim)
    blockedImage with properties:只读属性来源:[128x128x27 uint8]适配器:[1x1 images.blocked. properties]InMemory] Size: [128 128 27] SizeInBlocks: [1 1 1] ClassUnderlying: "uint8" Settable properties BlockSize: [128 128 27]

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

    fs = matlab.io.datastore.FileSet(...fullfile (matlabroot“工具箱”“图片”“imdata”),...“FileExtensions”, {“jpg”“使用”});

    从文件集中的图像创建一个阻塞图像数组。

    bims = blockedImage(fs);

    显示阻塞图像数组的详细信息。

    disp(智能化)
    1x74 blockedImage数组的属性:只读属性来源:'各种'适配器:[1x1图像.blocked。可设置属性没有属性。

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

    目的地= [];Imgsize = [5 7];Blocksize = [2 2];Initval = uint8(0);bim = blockedImage(目标,imgsize,blocksize,初始值,“模式”' w ');

    方法将数据写入阻塞映像中的指定块setBlock对象的功能。的blocksubs参数指定要写入数据的块的坐标。的blockdata参数指定要写入指定块的数据。blockdata的大小必须与块大小匹配。

    Blocksubs = [1 1];Blockdata = ones(2,2,“uint8”);setBlock(bim, blocksubs, blockdata)

    关闭图像以便写入。

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

    女子。模式=“r”
    bim = blockedImage with properties:只读属性来源:[5x7 uint8]适配器:[1x1 images.blocked. properties]InMemory] Size: [5 7] SizeInBlocks: [3 4] ClassUnderlying: "uint8"可设置属性BlockSize: [2 2]

    方法创建完整映像收集函数收集所有单独的块。

    fullImage = gather(bim);

    在命令行上显示阻塞映像的详细信息。

    disp (fullImage)
    1 1 0 0 0 0 0 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 0 0 0 0 0 0

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

    bim = blockedImage(“tumor_091R.tif”);bigimageshow (bim)

    指定像素中心之间的距离在最细的级别。这一信息是从原始数据中获得的https://camelyon17.grand-challenge.org/Data/

    Pext = 0.000226316;%(毫米)

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

    (bim. worldStart = 0。NumLevels,女子。NumDimensions);

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

    worldEnd = bim.Size(1,:)*pext;

    所有分辨率级别都跨越相同的世界坐标。

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

    第三维度保存颜色通道,每个通道的像素范围为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中引入