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)[source]#

对图像应用缩放和平移。

通过使用与 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" 线性插值。 如果 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。 在上采样时无效。

返回值:

缩放和平移后的图像。