np.pad函数的常数填充模式
目前在图像处理中使用了常数填充,在这里记录下常数填充模式的使用示例,以后用到其他模式再回来补充。
np.pad格式:np.pad(数组名称, 填充规模, 'constant',constant_value=(x,y))
填充规模:表示每一维填充的前后个数(后面根据例子来理解)
‘constant’表示填充模式,表示常数填充
constant_values=(x,y),表示前面用x这个数填充,后边用y这个数填充
示例1
代码:
import numpy as np
arr3D = np.array([[[1, 2],
[1, 2]],
[[3, 4],
[3, 4]]])
pad_First = np.pad(arr3D, ((1, 2), (0, 0), (0, 0)), 'constant',constant_values=(0, 5))
print("First:\n{}".format(pad_First))
运行结果:
通过打印的结果可以看出,是最外边的那一维进行填充,前面增加了一个二维数组,后面增加了两个二维维数组。前面的用0填充,后边的用5填充。
示例2
代码:
pad_Second = np.pad(arr3D, ((0, 0), (1, 2), (0, 0)), 'constant', constant_values=(0, 5))
print("Second:\n{}".format(pad_Second))
运行结果:
打印的结果可以看到,是中间一维进行填充,每一个二维数组前面增加了一行,后边增加了两行,前面的用0填充,后边的用5填充。
示例3
代码:
pad_Third = np.pad(arr3D, ((0, 0), (0, 0), (1, 2)), 'constant', constant_values=(0, 5))
print("Third:\n{}".format(pad_Third))
运行结果:
打印的结果可以看到,最里面那一维进行填充,前面增加一个数,后边增加两个数,前面的用0填充,后边的用5填充。
示例4
代码:
pad_Special = np.pad(arr3D, (1, 2), 'constant', constant_values=(0, 5))
print("Special:\n{}".format(pad_Special))
运行结果:
这里把填充规模简写了,这种形式表示,三个维度均使用“前增1,后增2”的形式。
总结:注意填充规模的使用,其他的相对容易