2016-10-07 348 views
1

使用Python PIL我想要以这样一种方式转换输入图像,使它们看起来很透彻。我发现的大部分答案都是关于旋转等。下面的图片显示了我瞄准的效果之一。同样,我想这样做不仅从前到后,而且从左到右,反之亦然。我想要的另一个效果是以中心更近,边缘更远的方式扭曲图像。Python PIL图像变形/仿射变换

我该如何拨打im.transform才能获得此效果?为什么?

输入图像:

Input Image

输出效果:

Ouput Image

回答

3

我相信你正在寻找perspective transformations。您可以在下面的方式与枕头做到这一点:

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); 
+0

有趣。但是,上面的效果需要什么值? – Simon

+0

或更好,如何将3D投影转换为此2D输入 – Simon