在python中旋转图像:外推背景颜色

时间:2018-03-27 10:16:21

标签: python image colors rotation python-imaging-library

我正在使用以下python代码旋转图像:

from PIL import Image

img = Image.open('banana.jpg')
rotated = img.rotate(10)
rotated.save('banana-rotated.jpg')

这使得以下转变:

enter image description hereenter image description here

如您所见,背景为黑色。 This question询问如何使用特定颜色填充背景。但是,我想用图像的颜色填充背景。因为我需要旋转许多图像,所以我不想将背景设置为固定颜色。

是否有某种方法在边缘扩展图像使用从图片中推断出来的颜色?理想情况下,如果图像没有统一的背景,这也可以使用。

2 个答案:

答案 0 :(得分:1)

这可以帮助:https://pillow.readthedocs.io/en/5.2.x/releasenotes/5.2.0.html#image-rotate

5.2.0及更高版本,fillcolor中添加了一个名为Image.rotate的新命名参数。此颜色指定要在旋转图像之外的区域中使用的背景颜色。

image.rotate(45, fillcolor='white')

如果图像旋转了90,180,270以外的x度,可能会有所帮助

答案 1 :(得分:0)

这不是很好,但你总是可以用原始边框的平均颜色填充边框

 image.rotate(5, fillcolor=tuple(np.mean(np.array(image)[0,:], axis=0).astype(int)))