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
fake_img = paddle.randn((3, 2, 4)).astype(paddle.float32)
print(fake_img)
#Tensor(shape=[3, 2, 4], dtype=float32, place=Place(gpu:0), stop_gradient=True,
# [[[ 0.02169025, -0.97859967, -1.39175487, -1.07478464],
# [ 0.20654772, 1.74624777, 0.32268861, -0.13857445]],
#
# [[-0.14993843, 1.10793507, -0.40056887, -1.94395220],
# [ 0.41686651, 0.44551995, -0.09356714, -0.60898107]],
#
# [[-0.24998808, -1.47699273, -0.88838995, 0.42629015],
# [ 0.56948012, -0.96200180, 0.53355658, 3.20450878]]])
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(gpu:0), stop_gradient=True,
# [[[ 0.02169025, 0. , 0. , -1.07478464],
# [ 0.20654772, 1.74624777, 0.32268861, -0.13857445]],
#
# [[-0.14993843, 0. , 0. , -1.94395220],
# [ 0.41686651, 0.44551995, -0.09356714, -0.60898107]],
#
# [[-0.24998808, 0. , 0. , 0.42629015],
# [ 0.56948012, -0.96200180, 0.53355658, 3.20450878]]])