¿Dónde puedo encontrar algoritmos para distorsiones de imagen? Hay mucha información de Blur y otros algoritmos clásicos, pero muy pocos de los más complejos. En particular, estoy interesado en el algoritmo de distorsión de imagen de efecto de remolino.Recursos para algoritmos de distorsión de imagen
Respuesta
No puedo encontrar ninguna referencia, pero puedo dar una idea básica de cómo funcionan los efectos de distorsión.
La clave de la distorsión es una función que toma dos coordenadas (x, y) en la imagen distorsionada, y las transforma en coordenadas (u, v) en la imagen original. Especifica la función inversa de la distorsión, ya que devuelve la imagen distorsionada a la imagen original
Para generar la imagen distorsionada, una curva sobre xey, calcula el punto (u, v) de (x, y) utilizando la función de distorsión inversa, y establece las componentes de color en (x, y) para que sean las mismas que en (u, v) en la imagen original. Por lo general, uno utiliza la interpolación (por ejemplo, http://en.wikipedia.org/wiki/Bilinear_interpolation) para determinar el color en (u, v), ya que (u, v) generalmente no se encuentra exactamente en el centro de un píxel, sino en algún punto fraccionario entre píxeles.
Un remolino es esencialmente una rotación, donde el ángulo de rotación depende de la distancia desde el centro de la imagen. Un ejemplo sería:
a = amount of rotation
b = size of effect
angle = a*exp(-(x*x+y*y)/(b*b))
u = cos(angle)*x + sin(angle)*y
v = -sin(angle)*x + cos(angle)*y
Aquí, supongo por simplicidad que el centro del remolino está en (0,0). El remolino puede colocarse en cualquier parte restando las coordenadas de posición del remolino de xey antes de la función de distorsión, y sumarlas a uyv después de ella.
Existen varios efectos de remolino: algunos (como el anterior) giran solo en un área localizada y la cantidad de remolinos disminuye hacia el borde de la imagen. Otros aumentan el remolino hacia el borde de la imagen. Este tipo de cosas se puede hacer jugando con el ángulo = línea, p.
angle = a*(x*x+y*y)
Eche un vistazo a ImageMagick. Es un kit de herramientas de conversión y edición de imágenes y tiene interfaces para todos los idiomas populares.
El operador de "desalojo" puede crear remolinos con el mapa de desplazamiento correcto.
Si por algún motivo no está satisfecho con la interfaz de ImageMagick, siempre puede echar un vistazo al código fuente de los filtros e ir desde allí.
El remolino y otros similares son una transformación de matriz en las ubicaciones de píxeles. Usted crea una imagen nueva y obtiene el color de una posición en la imagen que obtiene al multiplicar la posición actual por una matriz.
La matriz depende de la posición actual.
aquí es una buena CodeProject mostrando cómo hacerlo
http://www.codeproject.com/KB/GDI-plus/displacementfilters.aspx
Hay una implementación Java de gran cantidad de filtros de imagen/efectos en Jerry's Java Image Filters. Tal vez puedas inspirarte desde allí.
allí tiene una nueva biblioteca gráfica tienen muchas características
- 1. Buscando algoritmos rápidos de distorsión de imagen
- 2. Fórmulas para la distorsión de barril/acerico
- 3. Distorsión de perspectiva OpenGL
- 4. Recursos para principiantes/introducciones a los algoritmos de clasificación
- 5. ¿Qué algoritmos usar para reducir la imagen?
- 6. ¿Hay Algoritmos de compresión de imagen "especiales" para las carátulas?
- 7. Esferas texturizadas sin una gran distorsión
- 8. ¿Cómo funcionan los algoritmos de conversión de imagen artística ASCII?
- 9. Buscando algoritmos para generar planetas realistas
- 10. Algoritmos de optimización de colas de trabajos
- 11. Algoritmos para City Simulation?
- 12. Algoritmos para laberintos 3D
- 13. Algoritmos de procesamiento/mejora de imagen para el documento OCR/legibilidad?
- 14. . Biblioteca de .NET para algoritmos de texto?
- 15. Algoritmos de ajuste de palabras para japonés
- 16. fullScreen Previsualización de la cámara sin distorsión/estiramiento
- 17. Algoritmos para la detección de isomorfismo subgráfico
- 18. Algoritmos de comprensión para medir tendencias
- 19. límite de STL algoritmos para N elementos
- 20. Uso de algoritmos genéticos para redes neuronales
- 21. Enlaces para algoritmos de juegos simples
- 22. Algoritmos reversibles de diferencias (historia) para C#?
- 23. Implementaciones de algoritmos para evaluar circuitos
- 24. Entrada de muestra para varios algoritmos
- 25. Algoritmos de compresión solo para números
- 26. Recursos para principiantes de audio DSP?
- 27. ¿Algoritmos de detección de imágenes duplicados?
- 28. XamlParseException en la configuración de la imagen de los recursos
- 29. Reglas de nomenclatura para recursos de Android
- 30. Algoritmos para Big O Analysis
Me gustaría poder upvote esto 10 veces. Muchas gracias :) – fresskoma
pero esto toma BufferedImage como entrada de filets, que no es compatible con Android – AAnkit
sí, las imágenes almacenadas en búfer no son compatibles con Android ... entonces tienes u otra idea para estos efectos. –