blockedImage
由离散块制成的图像
描述
一个blockedImage
对象是由离散块组成的图像。当映像或卷太大,无法装入内存时,请使用阻塞映像。使用阻塞的映像,您可以在不耗尽内存的情况下执行处理。
创建
语法
描述
创建只读blockedImage
对象
bims = blockedImage(
的数组创建来源
)blockedImage
对象。源可以是包含图像数据的文件或文件夹的集合。的长度智能化系统
等于源的个数来源
.
___= blockedImage (___,
创建一个名称,值
)blockedImage
对象,使用一个或多个名称-值参数来设置对象属性.
创建可写的blockedImage
对象
wbim = blockedImage(
创建一个可写对象目的地
,大小
,blockSize
,initialValue
、“模式”、“w”)blockedImage
对象在一个或多个分辨率级别上。目的地
指定可写数据的位置。大小
表示每个分辨率级别的图像大小。initialValue
指示每个数组元素的初始值。
输入参数
源
- - - - - -图像数据来源
数字数组|分类数组|结构数组|特征向量|字符串标量
图像数据的来源,指定为数字数组、分类数组或结构数组,或指定文件或文件夹名称的字符向量或字符串标量。
Blocked images支万博1manbetx持以下文件格式:
单个TIFF文件。如果文件包含多个镜像文件目录(ifd),则需要使用
blockedImage
对象将ifd视为多个分辨率级别。可以读取的任何图像文件
imread
.工具箱中包含的适配器所创建的任何源
适配器
.
来源
- - - - - -图像数据来源
字符向量的单元格数组|字符串数组|文件集
对象
图像数据的来源,指定为字符向量的单元格数组、字符串数组或文件集
对象。
目的地
- - - - - -放置可写数据的位置
[]
|特征向量|字符串标量
放置可写数据的位置,指定为字符向量或字符串标量。
目的地类型 | 图像格式 |
---|---|
文件夹名称(不带文件扩展名) | 的 |
文件扩展名为TIF或TIFF | 的 的 |
文件扩展名为H5 | 的 的 |
[] |
的 |
要为其他输出格式指定自定义适配器,请使用适配器
财产。
大小
- - - - - -每个分辨率级别的图像大小
l——- - - - - -N矩阵
每个分辨率级别的图像大小,指定为l——- - - - - -N正整数矩阵,其中l是分辨率等级的多少和N是图像的维数。的blockedImage
对象总是进行排序大小
按像素数降序排列,与如何排列无关源
存储级别。
blockSize
- - - - - -块的大小
l——- - - - - -N矩阵
块的大小,指定为l——- - - - - -N正整数矩阵,其中l是分辨率等级的多少和N是维数。
如果图像具有多个分辨率级别,则可以指定blockSize
作为1 ×N向量对所有分辨率级别使用相同的块大小。
例子:(64 128)
为单个分辨率图像指定64 × 128像素的块大小
例子:(128 128;64 64;32 32)
为三种分辨率级别指定三种不同的块大小
initialValue
- - - - - -未加载块的默认元素值
数字标量|绝对标量|struct标量
未加载块的默认像素值,指定为这些值之一。被阻塞的图像使用这个值来填充底层源中没有数据的块。
数字标量。的数据类型
initialValue
属性的值ClassUnderlying
财产。默认值为0
.绝对标量。默认值为
<定义>
.结构使用与数据相同的字段名。默认值为
<定义>
.
属性
适配器
- - - - - -被阻塞图像对象的读写接口
InMemory
对象|MATBlocks
对象|PNGBlocks
对象|TIFF
对象|……
阻塞映像对象的读写接口,指定为这些适配器对象之一。
适配器 | 描述 |
---|---|
BINBlocks |
将每个块存储为一个文件夹中的二进制文件 |
GenericImage |
在单个图像中存储块 |
GenericImageBlocks |
将每个块存储为一个文件夹中的图像文件 |
H5 |
存储块在单个HDF5图像 |
H5Blocks |
将每个块存储为一个文件夹中的HDF5文件 |
InMemory |
将块存储在主存的变量中 |
JPEGBlocks |
将每个块存储为一个文件夹中的JPEG文件 |
MATBlocks |
将每个块作为一个MAT文件存储在一个文件夹中 |
PNGBlocks |
将每个块存储为一个文件夹中的PNG文件 |
TIFF |
将块存储在单个TIFF文件中 |
属性创建自己的适配器images.blocked.Adapter
类。
AlternateFileSystemRoots
- - - - - -备用文件系统路径
字符串数组
源中指定的文件的备用文件系统路径,指定为包含一行或多行的字符串数组。每一行指定一组等价的根路径。
例子:[" Z: \数据集”、“/ mynetwork /数据集”)
数据类型:字符
|字符串
|细胞
BlockSize
- - - - - -块的大小
l——- - - - - -N矩阵
块的大小,指定为l——- - - - - -N正整数矩阵,其中l是分辨率等级的多少和N是维数。BlockSize
作为数据在任何时候加载到主存中以供使用的默认大小。它是可以被操作的最小的数据单位blockedImage
接口。如果你指定BlockSize
小于N维度,blockedImage
元素中的元素填充图像大小
财产。
指定时不能指定此属性模式
作为' w '
.
数据类型:双
ClassUnderlying
- - - - - -像素数据类型
字符向量的单元格数组|字符串向量|结构|分类数组
此属性是只读的。
像素数据类型,指定为字符向量、字符串数组、结构数组或分类数组的单元格数组l元素。l分辨率级别的数目。数组中的每个元素都是对应分辨率级别的像素的数据类型。值:“逻辑”
,“int8”
,“uint8”
,“int16”
,“uint16”
,“int32”
,“uint32”
,“单身”
,“替身”
.
数据类型:字符
|字符串
InitialValue
- - - - - -未加载块的默认元素值
数字标量|分类
标量|结构体
此属性是只读的。
的默认元素值,指定为类型的数值标量ClassUnderlying
,一个分类
的值,或结构体
.的blockedImage
对象使用此值填充底层源中没有数据的块。缺省值根据数据类型不同而不同:0
对于数字类型,<定义>
对于定类,和标量结构体
.
数据类型:单
|双
|int8
|int16
|int32
|uint8
|uint16
|uint32
|字符
|分类
|结构体
IOBlockSize
- - - - - -图像源的I/O块大小
数字矩阵
此属性是只读的。
映像源的I/O块大小,指定为l——- - - - - -N正整数矩阵,其中l是分辨率等级的多少和N是维数。IOBlockSize
是适配器用于从映像源读取的底层I/O块大小。这表示可以写入或读取的最小数据单位。此只读属性反映底层图像源的格式。
请注意
你可以设置BlockSize
到任何值。的blockedImage
对象对源I/O块进行适当的读取、裁剪、拼接和缓存,以确保高效的I/O。
数据类型:双
模式
- - - - - -当前读写模式
“r”
(默认)|' w '
对象的当前读或写模式,指定为“r”
对于读模式和' w '
用于写模式。
你只能设置模式
来' w '
当您创建对象时。你可以改变的值模式
从' w '
来“r”
,此时不可能再进行写操作。你无法改变模式
从“r”
来' w '
.
当打开blockedImage
在写模式下,还必须为图象尺寸
,BlockSize
,InitialValue
属性。
数据类型:字符
NumDimensions
- - - - - -图像中的维数
正整数
此属性是只读的。
图像中的维数,指定为正整数。对于具有不同维度数的多分辨率级别图像,NumDimensions
是所有级别的最大值。如果需要,被阻塞的图像用单维度扩展其他级别。
数据类型:双
NumLevels
- - - - - -图像分辨率等级的数目
正整数
此属性是只读的。
图像分辨率级别的数目,指定为正整数。
数据类型:双
大小
- - - - - -每个级别的图像大小
l——- - - - - -N矩阵
此属性是只读的。
每个级别的图像大小,指定为l——- - - - - -N正整数矩阵,其中l是分辨率等级的多少和N是图像的维数。的blockedImage
对象总是进行排序大小
按像素数降序排列,与如何排列无关源
存储级别。
数据类型:双
SizeInBlocks
- - - - - -用块数表示的大小
l——- - - - - -N矩阵
此属性是只读的。
大小表示为块的数量,指定为l——- - - - - -N正整数矩阵,其中l是分辨率等级的多少和N是维数。这个属性依赖于BlockSize
财产。该值包括部分块。
数据类型:双
源
- - - - - -图像数据来源
字符串
标量|数字数组|分类
数组|结构体
数组
此属性是只读的。
图像数据的来源,指定为内存中的数值,分类
,或结构体
数组,或者作为字符串
标量或字符
指定文件或文件夹名称的向量。
数据类型:字符串
WorldEnd
- - - - - -图像结束边的世界坐标
数字矩阵
图像结束边缘的世界坐标,指定为l——- - - - - -N数字矩阵,l是分辨率等级的多少和N是维数。缺省值为尺寸+ 0.5
对于每个维度和级别,产生一个单位宽的像素。像素中心的世界坐标与第一层像素下标位置一致。
数据类型:双
WorldStart
- - - - - -图像起始边缘的世界坐标
数字矩阵
图像开始边缘的世界坐标,指定为l——- - - - - -N数字矩阵,l是层数和N是维数。缺省情况下,起始边缘值为0.5
在每个维度和层次上。
数据类型:双
用户数据
- - - - - -与映像关联的用户数据
结构体
与映像关联的用户数据,指定为结构体
.该字段可以为空。您可以随时更新该值。要使此值与源保持一致,请编写blockedImage
文件写
函数,或在创建对象时将数据指定为参数。
数据类型:结构体
对象的功能
例子
创建和可视化阻塞的图像
从工具箱中包含的示例图像创建一个阻塞图像。
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);标题(“以毫米计”)
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。