使用Python PIL我希望以一种看似透视的方式转换输入图像。我发现的大部分答案都是关于旋转等。下面的图片显示了我的目标之一。同样地,我不仅要从前到后,还要从左到右,反之亦然。我想要的另一个效果是以中心更近,边缘更远的方式扭曲图像。
如何调用im.transform
来获得此效果?为什么?
输入图片:
输出效果:
答案 0 :(得分:4)
我相信你正在寻找perspective transformations。您可以通过以下方式使用Pillow:
transformed = image.transform(
image.size, Image.PERSPECTIVE,
[
a0, a1, a2,
a3, a4, a5,
a6, a7
],
Image.BILINEAR
)
其中a0-a7是以这种方式用于转换的系数(来自Geometry.c):
xout = (a0 * xin + a1 * yin + a2) / (a6 * xin + a7 * yin + 1);
yout = (a3 * xin + a4 * yin + a5) / (a6 * xin + a7 * yin + 1);