在NumPy中,np.pad函数用于对数组进行填充(padding),即在数组的边界处添加额外的值。这在图像处理、信号处理或任何需要扩展数据边界的场景中非常有用。
以下是np.pad函数的一些关键参数和使用示例:
- array:需要进行填充的原始数组。
- pad_width:指定每个轴在开始和结束两侧的填充大小。可以是一个整数或一对整数的序列。
- mode:指定填充模式,常用的模式有:
- ‘constant’:用常数值填充(默认值为0)。
- ‘edge’:用最接近边缘的值填充。
- ‘linear_ramp’:线性递增或递减填充。
- ‘maximum’:用最大值填充。
- ‘mean’:用均值填充。
- ‘median’:用中位数填充。
- ‘reflect’:反射填充。
- ‘wrap’:环绕填充。
- ‘empty’:填充数组的元素为np.nan。
案例
K = array([[2.43096948e+03, 0.00000000e+00, 1.91533228e+03],
[0.00000000e+00, 2.42685107e+03, 1.08930408e+03],
[0.00000000e+00, 0.00000000e+00, 1.00000000e+00]])
cam2img = np.pad(K,((0,1),(0,1)),'constant',constant_values = 0)
>> array([[2.43096948e+03, 0.00000000e+00, 1.91533228e+03, 0.00000000e+00],
[0.00000000e+00, 2.42685107e+03, 1.08930408e+03, 0.00000000e+00],
[0.00000000e+00, 0.00000000e+00, 1.00000000e+00, 0.00000000e+00],
[0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]])
在NumPy中,np.pad函数的调用np.pad(K, ((0,1),(0,1)), ‘constant’, constant_values=0)表示对数组K进行填充,其中K是一个二维数组(矩阵)。这个调用指定了在每个轴上的填充宽度,并且使用了常数值填充模式。
这里是参数的详细解释:
- K:需要进行填充的原始二维数组。
((0,1),(0,1))
:这是一个元组,包含了两个元组,分别表示在两个轴上的填充宽度。- 第一个内元组(0,1)表示在第一个轴(
行
)上,开始处不填充,结束处填充1个单位
;第二个内元组(0,1)表示在第二个轴(列
)上,也是开始处不填充,结束处填充1个单位
。
- 第一个内元组(0,1)表示在第一个轴(
- constant:填充模式,表示使用常数值进行填充。
- constant_values=0:指定填充使用的常数值为0。
cam2img[-1,-1] = 1
array([[2.43096948e+03, 0.00000000e+00, 1.91533228e+03, 0.00000000e+00],
[0.00000000e+00, 2.42685107e+03, 1.08930408e+03, 0.00000000e+00],
[0.00000000e+00, 0.00000000e+00, 1.00000000e+00, 0.00000000e+00],
[0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.00000000e+00]])
实现了对cam2img由3x3变换维4x4维