jax.image.scale_and_translate

jax.image.scale_and_translate#

jax.image.scale_and_translate(image, shape, spatial_dims, scale, translation, method, antialias=True, precision=Precision.HIGHEST)[源代码][源代码]#

对图像应用缩放和平移。

通过使用与方法对应的采样方法,从输入图像重新采样生成形状为’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" 线性插值。如果 antialiasTrue,则在缩小时使用三角形滤波器。

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。在升采样时无效。

返回:

比例和翻译后的图像。