erase

paddle.vision.transforms. erase ( img, i, j, h, w, v, inplace=False ) [源代码]

使用给定的值擦除输入图像中的选定区域中的像素。

参数

  • img (paddle.Tensor|np.array|PIL.Image) - 输入的图像。对于 Tensor 类型的输入,形状应该为(C, H, W)。对于 np.array 类型的输入,形状应该为(H, W, C)。

  • i (int) - 擦除区域左上角点的纵坐标。

  • j (int) - 擦除区域左上角点的横坐标。

  • h (int) - 擦除区域的高。

  • w (int) - 擦除区域的宽。

  • v (paddle.Tensor|np.array) - 用于替换擦除区域中像素的值。当输入为 np.array 或者 PIL.Image 类型时,需要为 np.array 类型。

  • inplace (bool,可选) - 该变换是否在原地操作。默认值:False。

返回

paddle.Tensornumpy.arrayPIL.Image,擦除后的图像,类型与输入图像的类型一致。

代码示例

>>> import paddle
>>> paddle.seed(2023)
>>> fake_img = paddle.randn((3, 2, 4)).astype(paddle.float32)
>>> print(fake_img)
Tensor(shape=[3, 2, 4], dtype=float32, place=Place(cpu), stop_gradient=True,
[[[ 0.06132207,  1.11349595,  0.41906244, -0.24858207],
  [-1.85169315, -1.50370061,  1.73954511,  0.13331604]],
[[ 1.66359663, -0.55764782, -0.59911072, -0.57773495],
 [-1.03176904, -0.33741450, -0.29695082, -1.50258386]],
[[ 0.67233968, -1.07747352,  0.80170447, -0.06695852],
 [-1.85003340, -0.23008066,  0.65083790,  0.75387722]]])

>>> values = paddle.zeros((1,1,1), dtype=paddle.float32)
>>> result = paddle.vision.transforms.erase(fake_img, 0, 1, 1, 2, values)
>>> print(result)
Tensor(shape=[3, 2, 4], dtype=float32, place=Place(cpu), stop_gradient=True,
[[[ 0.06132207,  0.        ,  0.        , -0.24858207],
  [-1.85169315, -1.50370061,  1.73954511,  0.13331604]],
[[ 1.66359663,  0.        ,  0.        , -0.57773495],
 [-1.03176904, -0.33741450, -0.29695082, -1.50258386]],
[[ 0.67233968,  0.        ,  0.        , -0.06695852],
 [-1.85003340, -0.23008066,  0.65083790,  0.75387722]]])