如何在图像的底部和右侧添加一行像素?

How to add a row of pixels at the bottom and to the right of an image?

所以我遇到了一个与我一起工作的框架的问题,其中图像有点向下翻译 1 个像素,向左翻译一个像素(使像素数据错误)。

为了解决这个问题,我想在底部和左侧添加一个像素“填充”。该脚本需要相对较快,因为它是我正在使用的交互式软件,因此在 python for 循环中迭代像素不会作为选项

我已经安装了 Numpy 和 Pillow,因此非常欢迎在任何解决方案中使用这些模块

棘手的部分是,新的像素行需要与它们旁边的像素“融合”(因此理想情况下,左侧的填充会窃取其右侧像素的颜色,而底部的像素会从正上方的像素中获取颜色)-它们不能都是黑色的。

您可以像 一样扩展 PIL 图像。

然后您可以使用以下方法将其变成 Numpy 数组:

na = np.array(PILImage)

然后您可以使用 Numpy 索引设置第一列和最后一行:

na[:, 0]  = na[:, 1]   # first col = second col
na[-1, :] = na[-2, :]  # last row = penultimate row

然后使用以下命令将其恢复为 PIL 映像:

im = Image.fromarray(na)