主要内容

makeresampler

创建重采样结构

描述

例子

R= makeresampler (interpolantpadMethod创建用于的可分离重采样器结构tformarray.的interpolant参数指定可分离重采样器使用的插值核。的padMethod参数控制重采样器如何对映射到输入数组边缘附近或外部的输出元素进行插值或赋值。

R= makeresampler (名称,值使用名称-值参数创建用户编写的重采样器。

例子

全部折叠

将图像读入工作区并显示它。

A = imread(“moon.tif”);imshow (A)

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

创建一个可分离重采样器。

Resamp = makeresampler({“最近的”“立方”},“填满”);

创建定义仿射转换的空间转换结构(TFORM)。

拉伸=塑形(仿射的, (1 0;0 1.3;0 0]);

应用转换,指定自定义重新采样器。

B = imtransform(A,stretch,resamp);

显示转换后的图像。

imshow (B)

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

输入参数

全部折叠

插值核,指定为“最近的”“线性”“立方”,或单元格数组。这些内核分别执行最近邻插值、双线性插值、双三次插值和自定义插值。

定义一个自定义插值核函数为两元单元格数组,格式如下:

形式 描述

{half_width, positive_half}

half_width是一个正标量,表示对称插值核的半宽度。positive_half一个值向量是否在闭区间上对核进行有规律的采样[0 positive_half]

{half_width, interp_fcn}

interp_fcn是一个函数句柄,返回插值的内核值,给定一个数组的输入值在区间[0 positive_half]

您可以通过指定单元格数组,其元素数量等于转换维度的数量,从而沿着每个转换维度独立地定义插值方法。单元格数组的每个元素必须是插值核的先前类型之一。例如,考虑的值interpolant对于三维插值核:

{“最近”、“线性”,{2 KERNEL_TABLE}}

在这个例子中,重采样器在第一个变换维度上使用最近邻插值,在第二个维度上使用线性插值,在第三个维度上使用自定义的基于表的插值。

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

填充方法,用于将值赋给映射到输入数组之外的输出元素,指定为这些值之一。

垫的方法

描述

“约束”

将填充值数组中的值赋给映射到输入数组外部的点。对于映射到数组内部的点,重复数组的边界元素(与“复制”).当interpolant“最近的”,此垫法产生的结果与“填满”“约束”就像“填满”,但避免混合填充值和输入图像值。

“圆”

具有维度内元素循环重复的填充数组。一样padarray

“填满”

生成边缘光滑的输出数组(使用最近邻插值除外)。对于映射到输入数组边缘附近的输出点(内部或外部),它将输入图像和填充值结合起来。当interpolant“最近的”,此垫法产生的结果与“约束”

“复制”

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

“对称”

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

“填满”“复制”“圆”,或“对称”的重采样tformarray发生在两个逻辑步骤中:

  1. 填充数组一个无限地填满整个输入变换空间。

  2. 计算填充的卷积一个在几何映射指定的输出点处重新采样核。

每个非转换维度都是单独处理的。填充是虚拟的(通过重新映射数组下标完成),以提高性能和内存效率。如果实现自定义重采样器,则可以实现这些行为。

数据类型:字符|字符串

名称-值参数

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

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

例子:“类型”、“分离”创建可分离重采样器

重新采样器类型,指定为以下值之一。

类型 描述
“分离” 创建一个可分离重采样器。如果指定了这个值,那么可以指定的其他参数只有Interpolant而且PadMethod.其结果等同于使用makeresampler (interpolant padMethod)语法。
“自定义” 创建一个客户重采样器。如果指定此值,则必须指定NDims而且ResampleFcn参数和(可选的)CustomData论点。

数据类型:字符|字符串

看到padMethod为获取更多信息而争论。

数据类型:字符|字符串

看到interpolant为获取更多信息而争论。

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

维度自定义重采样器可以处理,指定为正整数。使用值为表示自定义重采样器可以处理任何维度。如果“类型”“自定义”,你必须指定NDims

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

执行重采样的函数,指定为函数句柄。你可以用下面的接口调用这个函数:

B = resample_fcn(A,M,TDIMS_A,TDIMS_B,FSIZE_A,FSIZE_B,F,R)

有关此函数输入参数的更多信息,请参阅For的帮助tformarray.这个论点是映射变换下标空间的数组吗B的变换下标空间一个.如果一个N改变尺寸(N = length(TDIMS_A))而且BP改变尺寸(P = length(TDIMS_B)),然后ndim (M) = P + 1,如果N > 1而且P如果N == 1,size(M,P + 1) = N

第一个P的尺寸对应于输出变换空间,按照输出变换维度所列的顺序进行排列TDIMS_B.(一般TDIMS_A而且TDIMS_B不需要按升序排序,尽管一些重采样器可以施加这样的限制。)因此,第一个P的元素尺寸(米)的变换维数的大小B.每个点映射到的输入变换坐标是跨的最终维度数组的,按照中给出的顺序TDIMS_A必须FSIZE_A而且FSIZE_B是全尺寸的吗一个而且B,填充1作为必要的保持一致TDIMS_ATDIMS_B,大小(一个)

数据类型:function_handle

用户定义的数据,使用字符串标量、字符向量或数字数组指定。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符|字符串

输出参数

全部折叠

作为结构返回的Resampler。

扩展功能

版本历史

R2006a之前介绍

全部展开

另请参阅