在NumPy中,可以使用np.pad函数来在数组周围添加一个边框。np.pad函数有多个参数,用于指定边框的样式、尺寸和填充值等信息。下面是添加边框的详细步骤和示例说明。
步骤
- 导入NumPy库。
python
import numpy as np
- 创建一个二维数组,作为原始数据。
python
data = np.array([[1, 2], [3, 4]])
原始数组:
array([[1, 2],
[3, 4]])
- 使用np.pad函数添加边框。
python
padded_data = np.pad(data, ((1,1),(1,1)), 'constant', constant_values=0)
- 参数1:原始数组,即需要添加边框的数组。
- 参数2:((before_1, after_1), (before_2, after_2)),用于指定每个维度前后需要添加的边框大小。在本例中,每个维度的前后都需要添加1个元素,因此传入((1,1),(1,1))。
- 参数3:指定边框的样式。'constant'表示使用指定的常数填充边框。
-
参数4:用于指定边框的填充值。在本例中,指定填充值为0。
-
输出添加完边框后的数组。
python
print(padded_data)
边框数组:
array([[0, 0, 0, 0],
[0, 1, 2, 0],
[0, 3, 4, 0],
[0, 0, 0, 0]])
示例1
下面的示例将展示如何在一张灰度图周围添加边框。
- 导入cv2和NumPy库。
python
import cv2
import numpy as np
- 加载灰度图像。
python
img = cv2.imread('lena.png', cv2.IMREAD_GRAYSCALE)
原始图像:
- 使用np.pad函数添加边框。
python
padded_img = np.pad(img, ((10,10),(10,10)), 'constant', constant_values=0)
- 参数2:((before_1, after_1),(before_2, after_2)),这里在每个维度的前后都添加了10个像素的边框。
- 参数3:'constant',用常数填充边框。
-
参数4:指定填充值为0,黑色边框。
-
显示添加完边框的图像。
python
cv2.imshow('padded_image', padded_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
添加边框后的图像:
示例2
下面是一个三维数组添加边框的示例。
- 导入NumPy库。
python
import numpy as np
- 创建一个三维数组。
python
data = np.array([[[1,2],[3,4]],[[5,6],[7,8]]])
原始数组:
```
array([[[1, 2],
[3, 4]],
[[5, 6],
[7, 8]]])
```
- 使用np.pad函数添加边框。
python
padded_data = np.pad(data, ((1,1),(1,1),(1,1)), 'constant', constant_values=0)
- 参数2:((before_1, after_1),(before_2, after_2),(before_3, after_3)),这里在每个维度的前后都添加1个元素的边框。
- 参数3:'constant',用常数填充边框。
-
参数4:指定填充值为0。
-
输出添加完边框后的数组。
python
print(padded_data)
添加完边框后的数组:
```
array([[[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]],
[[0, 0, 0, 0],
[0, 1, 2, 0],
[0, 3, 4, 0],
[0, 0, 0, 0]],
[[0, 0, 0, 0],
[0, 5, 6, 0],
[0, 7, 8, 0],
[0, 0, 0, 0]],
[[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]]])
```
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何在NumPy数组周围添加一个边框 - Python技术站