elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Media
| |-+  Diseño Gráfico
| | |-+  ¿Qué es esencial en un dibujo para que tenga sentido, para que parezca algo?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Qué es esencial en un dibujo para que tenga sentido, para que parezca algo?  (Leído 3,656 veces)
Tachikomaia


Desconectado Desconectado

Mensajes: 1.251


Superhacker (es broma xD )


Ver Perfil
¿Qué es esencial en un dibujo para que tenga sentido, para que parezca algo?
« en: 26 Abril 2024, 04:06 am »

Creo que puedo hacer un programa que haga todos los dibujos posibles (aunque el tamaño de los puntitos y la variedad de colores tiene cierto límite), sin repetir, de forma ordenada (no es lo ideal pero es la forma más fácil de evitar repeticiones; es como si cada número pudiera convertirse en un dibujo diferente, entonces el número 0 se convierte en un dibujo, el 1 en otro distinto, y así), en cierta medida ya lo hice.

El problema es que los dibujos posibles son MUCHÍSIMOS y muchos no tienen sentido o son tan parecidos a otros ya mostrados que no vale la pena que el programa los haga.

Creo que más o menos logré que no se muestren los repetidos: Exigiendo que en cada columna y fila (la hoja va aumentando de tamaño digamos) haya al menos 1 puntito pintado, y que si un dibujo es simétrico (considerando un espejo vertical) a otro ya mostrado, no se muestre. Por ejemplo esto / es muy parecido a esto \ No quiero que mi programa muestre esos 2, con 1 me alcanza.

Evitar que se muestren los "casi iguales" es un arma de doble filo porque ese casi puede hacer una gran diferencia, al menos en dibujos pequeños. ¿Cual dirías que es la relación entre el tamaño de la hoja (siempre cuadrada) y la cantidad de puntitos que pueden ser distintos sin que haga gran diferencia? Quizá no exista tal relación, pero por ejemplo en un dibujo pequeño de una E, quitar dos puntitos de abajo lo puede convertir en una F, mientras que si el dibujo es muy grande sólo parecerá un pequeño error.

Me falta evitar que se generen dibujos sin sentido, imágenes que no tiene sentido ver, porque es como si fuesen nada, por ejemplo puntitos todos desconectados y al azar, parecido a pecas, yo no quiero ver todas las formas en que puede haber pecas, son muy similares, es aburrido, la idea es ver dibujos distintos que pueda usar de personajes. Lo que para alguien no tiene sentido, para otro puede que sí, pero bue, no busco generar imágenes para esos juegos de "une los puntos para descubrir la imagen secreta". Por eso pensé que lo esencial es que todos los puntitos estuvieran conectados con algún otro, pero he aquí un ejemplo en que no, el que parece un Pikachu:

Sus ojos y mejillas son puntitos desconectados, y no por eso el dibujo deja de tener sentido, ni siquiera los puntitos en cuestión. ¿Qué características dirías que debe tener un dibujo para que tenga sentido, para que parezca algo?


En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.365


Ver Perfil
Re: ¿Qué es esencial en un dibujo para que tenga sentido, para que parezca algo?
« Respuesta #1 en: 27 Abril 2024, 17:14 pm »

Esto solo puede saberse por comparativa de algo previamente conocido.
A ciencia cierta, no hay algoritmo que describa que si los píxeles de una imagen corresponde a algo existente o no, principamente porque para ello se debería tener catalogado todas las imágenes de cosas de cosas posibles, algo que es inabarcable, ya que ralla el infinito.

Ahora bien, desde un punto matemático, puede seguirse una heurística...
Verás al analizar una imagen puedes determinar su nivel de entropía, para cuantificar si es una imagen con ruido o no.
Básicamente lo que se hace para esto es tratar la estadística como si uno fuera a comprimirla, digamos que si la compresión intentada no logra comprimir nada (o peor la expande), estaríamos ante una imagen de entropía máxima y casi que fijo que se trata de ruido. Por supuesto se escaparían muchos falsos positivos y negativos, pero quizás en una cantidad aceptable (no por cuanto a los errores se refiere, si no por cuanto a los aciertos que consigue).



Por su parte, una imagen solo puede mostrar tantas imágenes distintas como su tamaño y variación por píxel permitan.
Supongamos que un píxel solo puede adoptar 256 colores... entonces, la cantidad de imágenes posibles será:
 ancho * alto * 256
Y si fueran 24 bits por píxel (16.777216 colores), entonces:
 ancho * alto * 16777216

Cuando el producto ancho  * alto supera cierto umbral, es impracticable exhibir todas las posibilidades.

Considera que si, que absolutamente todo el universo, todos los seres (animales, plantas, etc...) hubieran sido fotografiados a razon de una 1 vez por cada segundo de su existencia y desde cualquier posición 3D respecto a la del objeto a fotografiar, en un tamaño pongamos de 1280 x 960 (por poner unos valores de ejemplo), pues en efecto, con un programa podríamos recrear todas esas fotos (sí también de toda la gente del planeta desnudo en diferentes posiciones incluso haciendo cosas que nunca hizo) y de toda la historia del planeta... pero sacarlas al azar, no resulta, y no hay algoritmo evidente que seguir para tratar de recrearlo salvo la 'fuerza bruta'...
entonces calcula: 1280 * 960 * 16777216 = 20.615.843.020.800
Algo más de 20'6billones de imágenes... curiosamente la mayoría serían puro ruido... y no, no tendríamos todas las imágenes posibles del universo, ya que el tamaño lo limita.
Para tener mayor resolución y que no suceda que una imagen dada venga a concordar con 100 millones de personas, podríamos aumentar el tamaño de la foto, que tal si se hicieran a un tamaño de 12800 * 9600 (así hemos multiplicado por 100 el tamaño al aumentar x10 cada lado), ahora tendríamos: 2.061.584.302.080.000 imágenes distintas. (2'06 trillones, 100 veces más que antes), Ahora podríamos diistinguir muy bien caras, y podríamos tene runa foto, donde perfectamente apareciera un partido de fútbol jugado íntegramente por 22 foreros que jamás nos hemos visto las caras...
Sería todo un reto clasificar tales imágenes para además de descartar las que tengan ruido clasificar el resto en temáticas de diversa índole.
Pero habría que empezar por dónde se podría almacenar todas esas imágenes y cuánto tiempo llevaría la combnatoria de todas ellas?. (recuerda que para el caso la siguiente imagen es la mayor parte de las veces, la misma que la previa, donde solo cambia el mismo píxel 1 unida de valor, es decir habría 16777216  imágenes idénticas donde solo cambia el valor de 1 único píxel.... pero incluso con toda esa ventaja, date cuenta crear 16 millones de imágenes 122.880.000 píxeles. dónde las guardas?. Cuánto tiempo te llevaría generar todas las versiones de una sola imagen negra completamente donde solo cambia el primer píxel de la misma pasando por todos los colores hasta que ese píxel llegue al blanco?.


En línea

Tachikomaia


Desconectado Desconectado

Mensajes: 1.251


Superhacker (es broma xD )


Ver Perfil
Re: ¿Qué es esencial en un dibujo para que tenga sentido, para que parezca algo?
« Respuesta #2 en: 29 Abril 2024, 23:06 pm »

Ahora bien, desde un punto matemático, puede seguirse una heurística...
Verás al analizar una imagen puedes determinar su nivel de entropía, para cuantificar si es una imagen con ruido o no.
Básicamente lo que se hace para esto es tratar la estadística como si uno fuera a comprimirla, digamos que si la compresión intentada no logra comprimir nada (o peor la expande), estaríamos ante una imagen de entropía máxima y casi que fijo que se trata de ruido. Por supuesto se escaparían muchos falsos positivos y negativos, pero quizás en una cantidad aceptable (no por cuanto a los errores se refiere, si no por cuanto a los aciertos que consigue).
Quisiera que me des más detalles de eso.

Citar
Pero habría que empezar por dónde se podría almacenar todas esas imágenes y cuánto tiempo llevaría la combnatoria de todas ellas?
Yo en principio sólo quiero sprites como de Game Boy y Nes. Tomaría fotos a los que me gusten, no sé si es necesario guardar cosas más allá de eso.

Por cierto, suelen tener pocos colores, los de GB suelen ser sólo 3 o 4, contando el fondo (que no debe ser igual al borde; sino serían 5).

Citar
Cuánto tiempo te llevaría generar todas las versiones de una sola imagen negra completamente donde solo cambia el primer píxel de la misma pasando por todos los colores hasta que ese píxel llegue al blanco?
Buena pregunta, puede que haya una regla o truco que usar para evitar eso, algo como: ¿Qué relación hay entre el tamaño de la hoja, la cantidad de colores, y la cantidad que debe cambiar para que el dibujo cambie significativamente?

Es que por ahora sólo había pensado en blanco y negro.

También empecé otro programa en que la idea sería hacer programación genética basada en las elecciones del usuario. Primero genera dibujos random según ciertas especificaciones:

2ndo: El usuario cliquearía una, la que más le guste.
3ero: Todas las demás se volverían iguales a esa, y se modificarían un X% o X cantidad de píxeles, según la configuración inicial y otras cosas que deberé pensar.
Los pasos 2 y 3 se repetirían hasta que el usuario quiera. Cuando tenga algo suficientemente decente lo publico, por ahora es sólo ese random.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines