¿Necesito realizar una operación de perspectiva de imagen desde la línea de comando?
¿Existe algún lugar donde se proporcione la documentación correctamente? He hecho esta pregunta sobre el desbordamiento de pila, puedes consultaraquí.
Si hay alguna otra herramienta disponible que proporcione una interfaz de línea de comandos para hacer lo mismo, también será buena para mí.
Respuesta1
Probablemente la mejor herramienta para manipular imágenes sería ImageMagick. Si echas un vistazo a la documentación, hay ejemplos extensos que muestran cómo usar la -distort
función que creo que es lo que estás buscando.
Ejemplo
Antes después
Línea de comando para realizar la conversión:
$ convert checks.png -filter point
-virtual-pixel tile -mattecolor DodgerBlue
-distort Perspective '0,0 20,60 90,0 70,63 0,90 5,83 90,90 85,88'
horizon_tile_point.png
Existen otros dos métodos para realizar el muestreo y lograr que la imagen resultante se vea mejor. Específicamente "Supermuestreo de cuadrícula" y "Remuestreo de área ponderada elíptica (EWA)". Este último es el predeterminado.
¿Cómo calculo las coordenadas?
Hay 2 recursos para comprender cómo generar la serie de coordenadas para convert
. El primero es el que di arriba. El segundo es este SO Q&A titulado:Comprender la distorsión de la proyección en perspectiva ImageMagick, específicamenteLa respuesta de @KurtPfeifle.
Las coordenadas son las siguientes:
Sx1,Sy1 Dx1,Dy1 Sx2,Sy2 Dx2,Dy2 Sx3,Sy3 Dx3,Dy3 ... Sxn,Syn Dxn,Dyn
- x se utiliza para representar una coordenada X.
- y se utiliza para representar una coordenada Y.
- 1, 2, 3, ... n se utiliza para representar el 1.º, 2.º, 3.º, ... n.ésimo píxel.
- S se utiliza aquí para el píxel de origen.
- Aquí se utiliza D para el píxel de destino.