mindspore.ops.ScaleAndTranslate

class mindspore.ops.ScaleAndTranslate(kernel_type='lanczos3', antialias=True)[源代码]

根缩放并平移输入图像Tensor。

说明

  • 输入图像必须是4D Tensor。

  • 输入 sizescaletranslation 必须是包含两个元素的一维Tensor。

参数:
  • kernel_type (str,可选) - 决定选择哪种图像滤波算法。可选列表:[“lanczos1”, “lanczos3”, “lanczos5”, “gaussian”, “box”, “triangle”, “keyscubic”, “mitchellcubic”]。默认值:“lanczos3”。

  • antialias (bool,可选) - 决定是否使用抗锯齿。默认值:True。

输入:
  • images (Tensor) - 四维Tensor,shape为 \((batch, image\_height, image\_width, channel)\)

  • size (Tensor) - 缩放和平移操作后输出图像的大小。包含两个正数的的一维Tensor,形状必须为 \((2,)\) ,数据类型为int32。

  • scale (Tensor) - 指示缩放因子。包含两个正数的的一维Tensor,形状必须为 \((2,)\) ,数据类型为int32。

  • translation (Tensor) - 平移像素值。包含两个数的的一维Tensor,形状必须为 \((2,)\) ,数据类型为float32。

输出:

4-D Tensor,其shape为 \((batch, size[0], size[1], channel)\) ,数据类型为float32。

异常:
  • TypeError - kernel_type 不是str类型。

  • TypeError - antialias bool类型。

  • TypeError - images 数据类型无效。

  • TypeError - size 不是int32类型。

  • TypeError - scale 不是float32类型、。

  • TypeError - translation 不是Tensor或者数据类型不是float32。

  • ValueError - kernel_type 不在列表里面:[“lanczos1”, “lanczos3”, “lanczos5”, “gaussian”, “box”, “triangle”, “keyscubic”, “mitchellcubic”]。

  • ValueError - images 的秩不等于4。

  • ValueError - size 的shape不是 \((2,)\)

  • ValueError - scale 的shape不是 \((2,)\)

  • ValueError - translation 的shape不是 \((2,)\)

支持平台:

GPU CPU

样例:

>>> op = ops.ScaleAndTranslate()
>>> image = Tensor(np.array([[[[9.0], [5.0], [2.0], [1.0]],
...                           [[6.0], [1.0], [9.0], [7.0]]]]), mindspore.float32)
>>> size = Tensor(np.array([2, 2]).astype(np.int32))
>>> scale = Tensor(np.array([1, 1]).astype(np.float32))
>>> translation = Tensor(np.array([1, 1]).astype(np.float32))
>>> output = op(image, size, scale, translation)
>>> print(output)
[[[[0.]
   [0.]]
  [[0.]
   [9.]]]]