首页 > 解决方案 > 如何在 python 中使用 np.pad 填充图像?

问题描述

我目前正在处理由一个堆栈组成的图像,每个堆栈 18 个图像。然后我对这些图像进行反卷积以生成更清晰、更清晰的图像。但是,这样做时,我会得到边框伪影。我花了一些时间编写代码以确定填充这些图像需要多宽的垫,但是我不确定如何使用 np.pad 以便我可以生成填充图像。到目前为止,这是我的代码:

xextra = pad_width_x / 2
yextra = pad_width_y / 2
print (xextra)
print (yextra)

其中 xextra 和 yextra 是我将使用的焊盘宽度。我知道我需要使用这行代码来填充数组:

no_borders = np.pad(sparsebeadmix_sheet_cubic_deconvolution, pad_width_x, mode='constant', constant_values=0)

但是,我将如何处理我的图像堆栈(18 个图像)并将它们保存为输出?

我希望这是有道理的!

标签: pythonnumpyimage-processing

解决方案


如果您的堆栈是 nx*ny*18 数组:

import numpy as np

image_stack = np.ones((2, 2, 18))

extra_left, extra_right = 1, 2
extra_top, extra_bottom = 3, 1

np.pad(image_stack, ((extra_left, extra_right), (extra_top, extra_bottom), (0, 0)),
       mode='constant', constant_values=3) 

推荐阅读