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] 数组,其维度数与 `image` 相同,包含要在每个维度上应用的缩放比例。

  • translation – 一个 [K] 数组,其维度数与 `image` 相同,包含要在每个维度上应用的平移量。

  • method (str | ResizeMethod) – 要使用的重采样方法;可以是 `ResizeMethod` 实例或字符串。可用方法包括:LINEAR、LANCZOS3、LANCZOS5、CUBIC。

  • antialias (bool) – 在降采样时是否应使用抗锯齿滤波器?默认为 `True`。在升采样时没有效果。

返回:

缩放和平移后的图像。