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

3
我想将一个尺寸为500x500x3的RGB图像填充到512x512x3。我知道我需要在每个边界上添加6个像素,但是我不知道如何操作。我已经阅读了numpy.pad函数的文档,但是无法理解如何使用它。如果能提供代码片段将不胜感激。
2个回答

7

如果你需要填充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)]))

3
我们可以尝试通过添加边框内边距来解决问题,但这会变得有点复杂。我想建议您采用另一种方法。首先,我们可以创建一个大小为512x512的画布,然后将原始图像放置在此画布中。您可以参考以下代码进行操作:
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等,但这段代码说明了该概念。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接