主要内容

应用

处理阻塞图像的块

描述

例子

=应用(荡妇fcn处理整个阻塞映像荡妇通过应用函数句柄fcn到每个街区。返回,一个包含处理后数据的新块图像。

[bres1, bres2,…= apply(荡妇fcn返回多个输出参数。指定的函数句柄,fcn,必须指向返回相同数量参数的用户函数。

[bres1s, bres2s,…= apply(智能化系统fcn处理阻塞的图像数组智能化系统通过应用函数句柄fcn到每个被阻塞图像的每个块。返回包含已处理数据的阻塞图像数组。

___= apply(___名称,值使用名称-值参数修改块处理的各个方面。

例子

全部折叠

创建阻塞映像。

bim = blockedImage(“tumor_091R.tif”);

创建一个平滑过滤器,并将其应用于阻塞图像中的块。

平滑= 2000;

imguidedfilter在默认的5像素邻域上操作。向输入添加边框以读取其他数据。这个边界像素自动从输出中修剪,因为它的大小与输入相同。

benh =应用(荡妇,...@ (bs) imguidedfilter (bs.Data bs.Data,“DegreeOfSmoothing”平滑)...“BorderSize”, [5 5]);

显示原始图像和增强图像。

Ha1 = subplot(1,2,1);bigimageshow(荡妇,“ResolutionLevel”1);Ha2 = subplot(1,2,2);bigimageshow (benh);linkaxes ((ha1, ha2));Xlim ([2100, 2600]) ylim([1800 2300])

创建一个阻塞映像。

bim = blockedImage(“tumor_091R.tif”);

在最粗糙的层次上创建一个蒙版并显示它。

bmask = apply(bim, @(bs)rgb2gray(bs. data)<80,“水平”3);图bigimageshow (bmask)

方法调用处理的区域使用掩码来限制应用对象的功能。

bls = selectBlockLocations(bim,“面具”bmask,“InclusionThreshold”, 0.005);benh = apply(bim, @(bs)imguidedfilter(bs. data,bs. data,“DegreeOfSmoothing”, 2000),...“BorderSize”, [5 5],...“BlockLocationSet”美国劳工统计局);

显示原始图像和增强图像。

图ha1 = subplot(1,2,1);bigimageshow(荡妇,“ResolutionLevel”1);Ha2 = subplot(1,2,2);bigimageshow (benh);linkaxes ((ha1, ha2));

在工具箱示例图像文件夹中创建一个包含所有JPEG图像的文件集。

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

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

bims = blockedImage(fs);

创建一个适配器,将阻塞映像作为单个映像文件保存到磁盘。

outputFolder = tempname;outputAdapter = images.blocked.GenericImage;outputAdapter。扩展=“jpg”

将映像转换为磁盘上的二进制映像。

bos = apply(bims, @(b) imbinalize (im2gray(b. data)),...“OutputLocation”outputFolder,“适配器”, outputAdapter);

使用Image Browser应用程序查看输出文件夹的内容:imageBrowser (outputFolder)

输入参数

全部折叠

被阻塞的图像,指定为blockedImage对象。

的数组指定的已阻止的图像blockedImage对象。

处理函数,指定为函数句柄。有关更多信息,请参见创建函数句柄.处理函数fcn必须接受bstruct作为输入。要传递其他参数,请指定fcn作为一个匿名函数。有关更多信息,请参见匿名函数

bstruct是一个结构体使用这些字段:

描述
数据 数据块荡妇
开始 块中第一个元素的下标。如果BorderSize时,此下标可以超出边缘块的边界。
结束 块中最后一个元素的下标。如果BorderSize时,此下标可以超出边缘块的边界。
Blocksub 当前块的块下标
BorderSize 的值BorderSize参数。
BlockSize 的值BlockSize参数。注意:大小(数据)边界块可以小于此值时PadPartialValue是假的。
BatchSize 的值BatchSize参数
ImageNumber 索引荡妇数组用于当前图像。
水平 正在从中读取数据的分辨率级别。

这个函数fcn通常返回一个块的结果。结果可以是数值,a结构体,或分类

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:“水平”,3

用于写入阻塞图像数据的适配器,指定为适配器对象。要为不同的输出指定不同的适配器,请使用单元格数组。标量值展开。

此表列出了工具箱中包含的适配器。

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

您还可以指定一个执行自定义写入操作的自定义适配器。有关更多信息,请参见images.blocked.Adapter

提供给处理函数的块数fcn在每个批处理中,指定为数字标量。的BatchSize最后一个维度的输入是fcn.的所有输出fcn最后一个维度必须等于BatchSizeBatchSize大于1有助于在应用深度学习推理调用时优化gpu负载。当BatchSize大于1,PadPartialBlocks必须真正的

要处理的块的集合,指定为blockLocationSet对象。的ImageNumber物业指数分为智能化系统数组中。指定要处理的块可以通过限制处理的块的数量来提高效率。例如,使用selectBlockLocations使用掩码来限制将处理功能应用到某些区域。包含的块必须在一个规则的网格上。

块大小,指定为长度等于NumDimensions的属性荡妇.指定作为输入提供的块的大小fcn.如果BlockSize包含较少的元素应用对象中的元素填充缺失的维度大小财产。

边框大小,指定为长度等于的整数值向量NumDimensions的属性荡妇.指定来自邻近区域的要包含在块中的附加数据。对于边缘块,应用对象函数使用“PadMethod”.如果BorderSize包含较少的元素应用对象函数用0填充边界。

显示等待栏,指定为逻辑标量。当设置为真正的,应用对象函数显示长时间运行的操作的等待栏。如果取消等待栏,则应用对象函数返回部分输出(如果可用)。

数据类型:逻辑

额外的输入fcn的数组指定blockedImage对象。该数组中的块被提供给fcn作为之后的额外输入bstruct__ = fcn(bstruct, extrablock1,…).apply object函数从与主块相同的world区域中提取这些块荡妇,表示为bstruct

分辨率级别,指定为长度相同的整数向量“ExtraImages”.每个值指定从相应的值中使用的分辨率级别blockedImage对象ExtraImages

要使用的分辨率级别,指定为整数标量。对于多分辨率blockedImage对象时,此值确定用于获取要处理的块的分辨率级别。

输出文件夹的位置,指定为字符串标量或字符向量。如果只有一个输出,则应用对象函数直接将其写入此位置。对于多个输出,使用应用对象函数创建该格式的子文件夹< N > /输出N的输出。如果输入是数组,则应用对象的函数派生输出名称对应元素的属性。如果输入在内存中,则应用对象函数使用数值索引。当UseParallel属性是真正的OutputLocation应该是客户端会话上的有效路径。使用AlternateFileSystemRoots属性指定工作者会话所需的映射。所有输出都继承这个值。

不完整边缘块的填充方法,指定为这些值之一。该方法指定如何获取填充像素“BorderSize”或者是“PadPartialBlocks”参数。

价值

意义

数字标量

类型指定的常量类型的元素填充数值数组ClassUnderlying阻塞图像的属性。

“复制”

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

填充部分块,指定为逻辑标量。指定是否需要将边缘上可能存在的部分块填充到指定的块大小。应用对象函数使用中指定的方法PadMethod执行填充操作。

  • ,处理函数fcn操作在不带填充的部分块上,并可以返回小于的块BlockSize

  • 真正的,应用函数使用指定的参数填充部分块PadMethod.处理函数fcn操作并返回完整大小的块。

BatchSize大于1,集合PadPartialBlocks真正的

数据类型:逻辑

从指定为逻辑标量的前一次运行停止的位置继续处理。如果真正的,以及指定的“OutputLocation”具有前一次运行的内容,则当前运行将从前一次运行停止的位置继续处理。这种支持取万博1manbetx决于所使用的输出适配器。如果,应用对象函数删除先前的内容。

使用并行处理,指定为逻辑标量。确定是否应该使用新的或现有的并行池。如果没有活动的并行池,则会根据默认的并行设置打开新的并行池。属性指定的所有适配器适配器属性必须支持并行处理。万博1manbetx必须指定有效的OutputLocation.此参数需要并行计算工具箱™。

数据类型:逻辑

输出参数

全部折叠

新建的块图像,返回为blockedImage对象。

提示

  • 应用对象函数通过处理第一个块来确定输出大小。如果处理第一个块产生与输入相同大小的输出块,则将最终输出大小设置为与输入匹配。否则,处理最后一个块以确定最终输出大小。第一个块不能是部分块。

  • 应用对象函数设置InitialValue基于输出类型的输出属性:

    • 数字或逻辑输出-InitialValue设置为0

    • 分类输出-InitialValue设置为<定义>对应类型的值。

    • 结构体输出-InitialValue派生自第一个块的输出。所有字段都设置为空。

版本历史

R2021a中引入