#python #python-imaging-library
#python #python-imaging-library
Вопрос:
Используя Python PIL, я хочу преобразовать входные изображения таким образом, чтобы они выглядели в перспективе. Большинство ответов, которые я нашел, Касаются поворота и т. Д. На изображениях ниже показан один из эффектов, к которым я стремлюсь. Аналогично я хотел бы сделать это не только спереди назад, но и слева направо и наоборот. Еще один эффект, который я хотел бы, — это деформировать изображение таким образом, чтобы центр был ближе, а края — дальше.
Как я должен позвонить im.transform
, чтобы получить этот эффект? И почему?
Входное изображение:
Эффект вывода:
Ответ №1:
Я полагаю, что вы ищете перспективные преобразования. Вы можете сделать это с помощью 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);
Комментарии:
1. Интересно. Но какие значения требуются для приведенного выше эффекта?
2. Или лучше, как перевести 3D-проекции в этот 2D-ввод