如何对RGB图像进行零填充?

How to Zero Pad RGB Image?

我想将大小为 500x500x3 的 RGB 图像填充到 512x512x3。我知道我需要在每个边框上添加 6 个像素,但我不知道如何添加。我已阅读 numpy.pad 函数文档,但无法理解如何使用它。代码片段将不胜感激。

我们可以尝试通过添加边框填充来获得解决方案,但这会变得有点复杂。我想建议您可以使用其他方法。首先,我们可以创建一个大小为 512x512 的 canvas,然后我们将您的原始图像放入此 canvas 中。您可以通过以下代码获得帮助:

import numpy as np

# Create a larger black colored canvas
canvas = np.zeros(512, 512, 3)

canvas[6:506, 6:506] = your_500_500_img

显然,您可以将 6 和 506 转换为更通用的变量,并将其用作 padding512-padding 等,但这段代码说明了这个概念。

如果需要补0:

RGB = np.pad(RGB, pad_width=[(6, 6),(6, 6),(0, 0)], mode='constant')

使用constant_values参数填充不同的值(默认为0):

RGB = np.pad(RGB, pad_width=[(6, 6),(6, 6),(0, 0)], mode='constant', constant_values=0, constant_values=[(3,3),(5,5),(0,0)]))