mathematica image-processing wolfram-mathematica

image processing - Cómo generar tal imagen en Mathematica.



export image mathematica (2)

"Creo que esto podría aproximarse bien con un desplazamiento calculado para la imagen en cada celda" - Mr.Wizard

¡Exactamente! Como se puede ver en la imagen reconstruida, no hay efecto de lente y los mosaicos son solo desplazamientos.

Lo que necesita es una Hexagonal_tessellation y un algoritmo simple para calcular el desplazamiento de cada hexágono desde un punto central elegido (peso / 2, altura / 2).

Estoy pensando en procesar una imagen para generar. En Mathematica dada su poderosa capacidad de procesamiento de imágenes. ¿Alguien podría dar una idea de cómo hacer esto?

Muchas gracias.


Aquí hay una versión, utilizando texturas. Por supuesto, no actúa como una lente real, solo repite partes de la imagen de manera superpuesta.

t = CurrentImage[]; (* square off the image to avoid distortion *) t = ImageCrop[t, {240,240}]; n = 20; Graphics[{Texture[t], Table[ Polygon[ Table[h*{Sqrt[3]/2, 0} + (g - h)*{Sqrt[3]/4, 3/4} + {Sin[t], Cos[t]}, {t, 0., 2*Pi - Pi/3, Pi/3} ], VertexTextureCoordinates -> Transpose[{ Rescale[ (1/4)*Sqrt[3]*(g - h) + (Sqrt[3]*h)/2., {-n/2, n/2}, {0, 1} ] + {0, Sqrt[3]/2, Sqrt[3]/2, 0, -(Sqrt[3]/2), -(Sqrt[3]/2)}/(n/2), Rescale[ (3.*(g - h))/4, {-n/2, n/2}, {0, 1} ] + {1, 1/2, -(1/2), -1, -(1/2), 1/2}/(n/2) }] ], {h, -n, n, 2}, {g, -n, n, 2} ] }, PlotRange -> n/2 - 1 ]

Aquí está el código anterior aplicado a la prueba de imagen estándar ( Lena )