[ad_1]
CIUDAD DE MÉXICO (apro).- El arte de los progamadores de computadoras no parece detenerse nunca y surgen continuamente nuevas ideas. Por ejemplo, a Petros Vrellis se le ocurrió, en el 2016, hacer arte con cuerdas (de ahí que haya bautizado el artículo como “teoría de cuerdas”, a riesgo de una confusión con el tema en física). Nacido en 1974 en Grecia, obtuvo un grado de ingeniería eléctrica y posteriormente el grado de maestría en ciencias artísticas (sea lo que sea el significado de esto). Vrellis ha hecho lo que muchos otros científicos: combinar sus habilidades y capacidades tecnológicas, uniéndolas con temas artísticos, para así explorar nuevas ideas del mundo digital e interactivo. Vrellis se considera asimismo como un “inventor de juguetes” más que un artista. Para su trabajo usa computadoras, lenguajes de programación y electrónica.
Petros Vrellis tuvo una idea muy interesante: tomar una cuerda y tejer con ella en un marco circular (lleno de clavos en la periferia), para ir formando una imagen que bien podría ser el rostro de una persona. La idea sorprende en cierta medida, porque es un solo hilo o cuerda, la cual se va moviendo de clavo en clavo hasta que después de 3000 o 4000 veces, llegar a formar la imagen deseada. Esto representa entre 1 y 2 kms de cuerda o hilo. Para generar el resultado final, hay que seguir las instrucciones de la computadora de manera que pongamos el hilo tocando los clavos que se nos indique (los cuales están numerados para más facilidad).
La siguiente imagen muestra la obra de Greco: Cristo, armada con un hilo continuo, el cual va de clavo en clavo de acuerdo con el algoritmo generador (llamado algoritmo codicioso).
¿Cómo puede lograrse este efecto? El algoritmo básico contiene una serie de restricciones. Tal vez la más importante es que todo el trabajo de “tejer” la imagen final se hace a partir de un solo hilo que va conectando los clavos en la periferia del círculo donde se hace el trabajo. Para ello, la idea básica es tomar un punto en el perímetro del círculo en donde vamos a pintar nuestra imagen con un hilo, y trazar líneas a cada punto del perímetro. Si, por ejemplo, tenemos 300 puntos (clavos), en el perímetro, tomamos el clavo 1 y trazamos líneas al punto 2, 3, 4, hasta 300. Entonces ahora viene la clave: calculamos el promedio de tono de gris por donde pasa cada línea trazada (tomando en cuenta los valores originales de la imagen en tonos de gris). La mejor línea, que será nuestra elección, es la que tenga el tono de gris más oscuro (solamente hay 256 posibles tonos de gris).
Supongamos que de este proceso hallamos que el clavo 1 se debe unir al clavo 173. Bueno, ahora este será nuestro nuevo origen y generamos a su vez todas las líneas (desde el clavo 173 hacia el clavo 1, 2, 3, etcétera). Calculamos el tono de gris de cada trazo (sobre la imagen original) y nuestra elección será aquella línea que sea la más oscura. Procedemos entonces así hasta el final del proceso .
Hay un punto importante aquí: si seguimos con el ejemplo y hallamos la línea más oscura, desde el clavo 1 al clavo 173, cuando hagamos el proceso del clavo 173 a todos los demás tendremos que el clavo 1 tiene el valor más oscuro. Y entonces el sistema se ciclará de 1 al 173, del 173 al 1, del 1 al 173, etcétera. Para evitar eso, Vrellis se le ocurrió que cuando ya se eligió una línea por ser la más oscura, se traza esta del punto A al punto B (en nuestro ejemplo, del punto 1 al 173) y entonces pintamos en la imagen original, una línea blanca (del punto 1 al 173). Al hacer esto, garantizamos que la siguiente línea no podrá ser la que acabamos de recorrer del punto 1 al 173, pues el cálculo del punto 173 al 1 no va a dar el tono de gris más oscuro y entonces evitaremos este ciclo infinito.
El primer problema a resolver es cómo calcular el tono de gris de una línea en la imagen original. Hay que comprender que aunque en la computadora nosotros veamos líneas rectas, estás están formadas en una cuadrícula, la cual muchas veces no es tan fina, por lo que una línea puede verse así en realidad:
Pintar líneas es una labor tan cotidiana que se ha estudiado desde hace mucho tiempo. Fue Bresenham quien salió con un algoritmo, que lleva su nombre, el cual es muy eficiente para pintar líneas en la computadora, pues usa aritmética entera y esto hace que sea muy rápido.
Entonces, usando el algoritmo codicioso, lo que hacemos es trazar desde un primer clavo, líneas a todos los demás clavos, y usando el algoritmo de Bresenham, calculamos el tono de gris de cada pixel por donde debe pasar la línea. Al final, dividimos la suma total de los pixeles por la cantidad de pixeles que usa la línea. Así tenemos el promedio de tono de gris de cada línea trazada (que en realidad bosquejamos sobre la imagen original, pues queremos “leer” los valores originales de cada pixel en cada línea.
Aquí también surge la pregunta: ¿Cuántos clavos (o puntos en el perímetro del círculo), se necesitan para que quede la mejor imagen posible? La ingeniera JennyMa, en su canal de YouTube (https://youtu.be/UsbBSttaJos), experimentó con diferente cantidad de clavos, desde 100 a 400, y llegó a la conclusión que 300 clavos es el valor “mágico”, el ideal. Desde luego que mientras más clavos, la imagen podrá ser más precisa peor también, más oscura. Hay entonces un equilibrio que conservar entre cantidad de clavos y resolución de la imagen final.
Otro punto a considerar es el grosor de la cuerda a usar en la creación de la fotografía “tejida” sobre el bastidor circular. Hay aquí la posibilidad de usar cuerdas de diferente grosor, pero probablemente si se usan cuerdas muy gruesas, la imagen final va a quedar muy rápidamente oscurecida. Por ello mismo, la propia JennyMa sugiere usar cuerdas no demasiado gruesas, aunque sí más que hilo de coser, por ejemplo.
Otros parámetros pueden ser importantes. Por ejemplo, el contraste de una imagen puede ayudar o perjudicar el resultado final. Algunas pruebas sugieren que las imágenes deben tener menos contraste para que queden mejor cuando se aplique el algoritmo codicioso, aunque la mejor idea es probar con diferentes contrastes y brillos, para ver qué combinación es la mejor. Y de hecho, la moraleja del cuento es que hay probablemente imágenes que no son susceptibles a ser tratadas con este algoritmo para que den un resultado aceptable.
JennyMa, en su video, el cual es sumamente informativo e ilustrativo, propone no colocar todas las líneas desde un punto inicial a todos los demás, sino el brincarse unas diez líneas. Esto tiene como objetivo que las líneas no se peguen demasiado y el efecto final es que sea menos oscuro el resultado del proceso.
Escribimos nuestro propio programa para averiguar las características del problema de primera mano. Por ejemplo, tomamos esta imagen de Albert Einstein:
La diferencia en los resultados parece tener que ver con el grosor de la “cuerda” virtual, es decir, en el grosor de la rutina que pinta líneas en el software la cual, es la de menor grosor. No obstante esto, los resultados no parecen ser malos.
A quien le interese el software (experimental, pues puede tener aún errores), escríbame a morsa@la-morsa.com y se lo mando por correo. Sólo corre en Windows.
[ad_2]
Source link