jax.image.scale_and_translate#
- jax.image.scale_and_translate(image, shape, spatial_dims, scale, translation, method, antialias=True, precision=Precision.HIGHEST)[源代码]#
对图像应用缩放和平移。
通过使用与 method 对应的采样方法从输入图像重新采样,生成形状为 ‘shape’ 的新图像。对于 2D 图像,此操作将输入图像中的位置 (x, y) 转换为输出图像中的位置,根据
(x * scale[1] + translation[1], y * scale[0] + translation[0])
(请注意,使用逆变换来生成采样位置。)假设像素中心位于半整数位置,即整数位置
row, col
的像素的坐标为y, x = row + 0.5, col + 0.5
,对于其他输入图像维度也是如此。如果输出位置(像素)映射到输入边界之外的输入采样位置,则输出位置的值将设置为零。
method
参数需要以下调整大小方法之一ResizeMethod.LINEAR
,"linear"
,"bilinear"
,"trilinear"
,"triangle"
线性插值。如果antialias
为True
,则在降采样时使用三角形滤波器。ResizeMethod.CUBIC
,"cubic"
,"bicubic"
,"tricubic"
三次插值,使用 Keys 三次核。
ResizeMethod.LANCZOS3
,"lanczos3"
Lanczos 重采样,使用半径为 3 的核。
ResizeMethod.LANCZOS5
,"lanczos5"
Lanczos 重采样,使用半径为 5 的核。
- 参数:
image – 一个 JAX 数组。
shape (core.Shape) – 输出形状,作为整数序列,长度等于 image 的维度数。
spatial_dims (Sequence[int]) – 一个长度为 K 的元组,指定应应用传递的缩放和平移的空间维度。
scale – 一个 [K] 数组,其维度数与图像相同,包含要在每个维度应用的缩放。
translation – 一个 [K] 数组,其维度数与图像相同,包含要在每个维度应用的平移。
method (str | ResizeMethod) – 要使用的调整大小方法;可以是
ResizeMethod
实例或字符串。可用的方法有:LINEAR、LANCZOS3、LANCZOS5、CUBIC。antialias (bool) – 在降采样时是否应使用抗锯齿滤波器?默认为
True
。上采样时无效。
- 返回值:
缩放和平移后的图像。