erase¶
使用给定的值擦除输入图像中的选定区域中的像素。
参数¶
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.Tensor
或numpy.array
或PIL.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]]])