Método de distorsión de perspectiva de varita en Python

La perspectiva es otro tipo de método de distorsión en la función de distorsión. Representa la imagen en perspectiva basada en argumentos. La distorsión de perspectiva requiere 4 pares de puntos, lo que da un total de 16 dobles. El orden de los argumentos es grupos de pares de coordenadas de origen y destino.
 

src1x, src1y, dst1x, dst1y,
src2x, src2y, dst2x, dst2y,
src3x, src3y, dst3x, dst3y,
src4x, src4y, dst4x, dst4y

Sintaxis: 
 

wand.image.distort('perspective', arguments')

Imagen de origen: 
 

Ejemplo 1:
 

Python3

# Import Color from wand.color module
from wand.color import Color
# Import Image from wand.image module
from wand.image import Image
 
with Image(filename ='gog.png') as img:
    img.virtual_pixel = 'background'
    img.background_color = Color('green')
    img.matte_color = Color('skyblue')
    arguments = (0, 0, 20, 60,
                 90, 0, 70, 63,
                 0, 90, 5, 83,
                 90, 90, 85, 88)
    # perspective distortion using distort function
    img.distort('perspective', arguments)
    img.save(filename ='gfg_p.png')

Producción: 
 

Ejemplo #2: Dividir puntos de origen y destino usando la string itertools
 

Python3

from itertools import chain
# Import Color from wand.color module
from wand.color import Color
# Import Image from wand.image module
from wand.image import Image
 
with Image(filename ='gog.png') as img:
    img.background_color = Color('skyblue')
    img.virtual_pixel = 'background'
    sp = (
        (0, 0),
        (140, 0),
        (0, 92),
        (140, 92)
    )
    dp = (
        (14, 4.6),
        (126.9, 9.2),
        (0, 92),
        (140, 92)
    )
    order = chain.from_iterable(zip(sp, dp))
    arguments = list(chain.from_iterable(order))
    img.distort('perspective', arguments)
    img.save(filename ='gfg_p2.png')

Producción: 
 

Publicación traducida automáticamente

Artículo escrito por RahulSabharwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *