Friday, October 20, 2017

El festival Aleph de la UNAM


Entre las actividades del Festival Aleph de Ciencia y Arte, en la UNAM, en el Centro Cultural Universitario, fui invitado a compartir una plática con el Monero Bef, con el que hablaremos de la física de los superhéroes. Bef además de monero e un estupendo escritor y novelista.

Así pues, el 21 de octubre del 2017 (sábado), estaremos a las 11 am en el Centro Cultural Universitario, para platicar de este tema, que quiero suponer, será interesante a partir de que Bef sabe de Comics un montón y un poco más.


Monday, October 16, 2017

Programación lúdica: ecualización del histograma de una imagen



El proceso digital de imágenes tiene una serie de técnicas para poder manipular los pixeles de una imagen. En un artículo pasado vimos la manera de ajustar el contraste a partir de estirar el histograma de frecuencias de valores de los pixeles en una imagen de tonos de gris. Cabe señalar que en una imagen de grises solamente puede haber 256 tonos diferentes, cuyas componentes de color son: (0,0,0) que es el negro; (1,1,1) que es menos negro... y así hasta (255,255,255), que es blanco.

Desafortunadamente el estirar el histograma no sirve cuando la diferencia entre el contraste mínimo y máximo es de 255, porque la fórmula para cada nuevo pixel sería: (TonoDeGris / 255) * 255, lo cual sería dividir entre 255 y multiplicar entre 255, lo que dejaría el resultado como el pixel original. Por ello, es necesaria otra técnica y ésta es lo que se llama la "ecualización de un histograma".

Cuando uno "ecualiza" algo, por ejemplo, una señal de audio, lo que hacemos es que los bajos y los altos se igualen. En lo que se refiere a gráficas, cuando hay muchos pixeles oscuros entonces se reduce esa cantidad y si hay pocos pixeles claros, se incrementan estos.

Para "ecualizar" (o igualar) los valores del histograma, lo que tenemos que hacer es simplemente crear algo que se llama CDF (Cumulative Distribution Frequency), lo cual es simplemente un arreglo de 256 bytes que contienen la suma de los valores de las frecuencias de los valores previos. Por ejemplo, si tenemos valores de frecuencias para los tones de grises: 52 tenemos 1, 53 tenemos 3, 58 tenemos 2 y 59 tenemos 3, entonces el CDF será 1, 4, 6, 9, etcétera, para el CFD[52], CDF[58] y CDF[59]. Simplemente sumamos el valor actual con el anterior y listo. Teniendo este valor, solamente nos falta calcular la ecualización de cada pixel, la cual es una función como ésta, para cada pixel en la imagen: NuevoPixel = round(((CDF[R]-1) / CDF[255]) * 255).

Para ver si esto funciona, tomemos la siguiente imagen de Lena:



Y procesemos de acuerdo a lo que hemos dicho:



Puede observarse que la imagen se ecualizó y el contraste cambió significativamente. Nótese cómo el histograma se "estiró" de alguna manera.

Cabe señalar que esta técnica puede no ser necesariamente la mejor pero todo dependerá de qué queremos hacer y por qué queremos ecualizar una imagen.

A quien le interese este tema, escríbame a morsa@la-morsa.com y le enviaré el software ejecutable y el código fuente escrito en Delphi.

Saturday, October 14, 2017

Cómo realizar el contraste de una imagen


En el curso que doy en la Facultad de Ciencias de la UNAM, de Proceso Digital de Imágenes, enseño cómo hacer una serie de filtros, muchos de ellos se pueden ver directamente en Photoshop, aunque otros, sobre todo los artísticos, no parecen ser fáciles de saber cómo están hechos, porque no hay documentación al respecto y en el oráculo que es Internet no he encontrado referencias sobre los mismos.

De todas maneras en este blog ya he descrito muchos de los filtros que enseño y otros que incluso no están disponibles en Photoshop o que hacerlos mediante esta herramienta pudiese resultar muy problemático de simular.

Uno de los filtros más comunes es el del contraste, y existen un par de algoritmos para realizarlos. Cuando uno aplica este filtro lo que hace es mover normalmente un valor el cual modifica pixel a pixel la imagen con la que estamos trabajando. Sin embargo, el resultado final muchas veces se hace a "ojímetro", es decir, midiendo visualmente cómo se ve la imagen al aplicarle cierto contraste.

Hay, sin embargo, una idea interesante para contrastar imágenes de manera automática. Esto se hace a través del ajuste del histograma de una imagen, el cual se basa en diferentes pasos (primero hablaremos de imágenes en tonos de gris):

  1.  cargar la imagen a procesar
  2.  calcular el histograma de frecuencias de tonos de gris de la imagen
  3.  Localizar los valores máximo y mínimo de los pixeles y hacer la resta de forma absoluta, es decir, nos dará el máximo contraste en términos positivos
  4. Aplicar la siguiente fórmula: NuevoPixel = (TonoDeGris / MaximoContraste) * 255
  5. Colocar el tono de gris nuevo en los tres componentes del pixel procesado (RGB).


Cabe decir que si tomamos el máximo contraste (MaximoContraste) como 255, la fórmula simplemente no hace nada, pues tendríamos: NuevoPixel = (TonoDeGris / 255) * 255, lo cual da que el valor es simplemente NuevoPixel = TonoDeGris, o lo que es lo mismo, multiplicamos y dividimos por 255.

Por ejemplo, la siguiente imagen de Einstein (ver siguiente figura), muestra su histograma que, como puede verse, tiende a estar más oscura que clara. Si tomamos la diferencia de contrastes como 225, entonces podemos aplicar la fórmula mencionada y ver cómo mejora la imagen.



Obsérvese (siguiente imagen), el resultado de esto. Nótese cómo cambia el histograma también.



Este procedimiento, como se mencionó, falla si tomamos 255 como el máximo contraste porque entonces no le estamos haciendo nada a la imagen. Sin embargo, se me ocurrió que bien podría yo decirle el valor máximo de contraste y debería funcionar. Como no estaba seguro de esto, hice el programa en cuestión y ¡ay! hallé que en principio sirve, pero deja "artefactos", es decir, puntos indeseables que no deberían quedar en la imagen procesada (véase la siguiente imagen)



Este proceso puede hacerse para imágenes en color también (no lo he hecho aún), pero en los documentos y páginas web que he leído, aparentemente funciona. Ya hablaré de los resultados de este proceso usando color, pero pienso que igual que en el caso anterior de tonos de gris, en algunos casos el procedimiento también dejará artefactos.

La solución es hacer una ecualización del histograma, pero esto es más complejo y lo abordaremos en otro artículo. Mientras tanto, dejo accesible el código fuente y ejecutable en Delphi de este programa. Basta con pedírmelo a mi correo morsa@la-morsa.com y lo encontrará a la brevedad en su buzón.

Monday, October 09, 2017

¿Es el ser humano bueno?



Hoy, como muchos otros días, recibo correos en donde se me indica que se ha bloqueado mi cuenta en el banco X y para desbloquearla debo ir a una página web en donde me pedirán mis datos y mis contraseñas. La página a la que me remiten, en su URL no dice por ejemplo, www.santander.com, sino www.satander.com, en un afán de que lea mal y que crea que estoy en la página oficial del banco en cuestión. A todo esto, lo que veo es una página idéntica al del banco, nada más que con los enlaces a sitios que desde luego, no corresponden a la institución financiera.

Y hoy me llega un correo diciendo que mi cuenta de Netflix tiene problemas. Y sí, debo tenerlos porque ni cuenta de Netflix tengo. O bien, me indican que Amazon me da por ser un gran cliente un bono de 50 dólares, lo cual, al entrar en los enlaces correspondientes, es fácil darse cuenta que esto no tiene nada que ver con la tienda de libros en línea. Es otro sitio falso que quiere que conteste preguntas personales, que le dé datos confidenciales, etcétera...

Pero por si fuera poco, desde hace unos días he empezado a recibir una andanada de correos de hermosas damas rusas que quieren todo conmigo. Algunas incluso me dicen que no saben por qué ya no les contesté. Es raro que pregunten eso porque simplemente nunca les escribí.

No falta, evidentemente la señora en África, que tiene muchos millones, un marido muerto, ella enferma terminal de cáncer, que quiere donarme toda su fortuna a mí, un absoluto desconocido, para que entonces le cumpla su última voluntad y haga un centro para niños pobres además de quedarme con un estupendo bono de muchos millones por mi gran obra. Pero claro, todo esto no puede ser verdad y no lo es.

Y podría seguir en esta lista absurda de mentiras por correo que recibo constantemente. En todos los casos hay un afán de defraudarme de alguna manera. La red Internet está llena de sitios en donde se reportan todos estos fraudes pero la ingenuidad humana parece siempre sobrepasar todas las advertencias. Y no importa que les diga que no, no hay nadie en el mundo que le va a regalar millones de dólares por su linda cara o bien, no, no existe una escultural mujer de ojos azules y sonrisa de dientes blancos, perfectos, con medidas asombrosas de modelo, que quiera ser tu esposa.

Quienes escriben esos correos saben que sus mentiras y sus maquiavélicas ideas para defraudar a los remitentes nunca recibirán castigo. Y por eso son capaces de mentir, de poner fotos falsas, de hacer alusión a sitios web para dar credibilidad a sus falsedades o mandar fotos de alguna anciana en un hospital para supuestamente hacer creíble su trampa (http://la-morsa.blogspot.mx/2017/03/la-tecnologia-contra-el-fraude-nigeriano.html). Y confían en los seres humanos ingenuos, que ante la posibilidad de ganar dinero sin hacer nada, se les nubla el mínimo razonamiento y caen en la trampa.

Pero fuera de todo esto, en este cotidiano acto de borrar a todos estos tramposos (porque nada m's se puede hacer realmente), me pregunto algo: ¿es acaso el hombre un ser bueno? ¿y si la respuesta es afirmativa, por qué hay tanto tramposo que se muestra por Internet? ¿No será finalmente que la naturaleza humana tiene más que ver con la maldad?

Tuesday, October 03, 2017

El país de los pedinches (parte II)



México, como ya mencioné aquí, se ha instalado como un país en donde todo mundo te pide dinero para todo género de causas. Y entiendo que muchas organizaciones que buscan hacer el bien muchas veces no tienen los suficientes recursos y entonces apelan a los donativos, a la "cooperacha", para hacerse de fondos, pero lo que pasa en este país ya es ridículo.

Una vez estaba en una comida y alguien, que trabaja en una ONG, decía que había que hacer donativos porque el dinero no alcanzaba. Le respondí con un "ni alcanzará". Es decir, no importa cuánto dinero se dé a estas organizaciones. Siempre las necesidades las rebasarán. Pero no importa eso, el chiste es pedir y que todos den, como en la pirinola, donde "todos ponen" (menos el gobierno, desde luego).

Con los sismos, un fenómeno que aparece de inmediato, como de generación espontánea, son los centros de acopio. Y la verdad es que habrá muchos centros que trabajarán de manera tal que todo lo que reciban se entregue a las personas en desgracia. El problema es que nadie puede estar seguro. Por ejemplo, por donde vive mi madre una casa puso una buena pancarta, colgada en todo lo ancho de la calle, en donde dice ser centro de acopio. Pasé por ahí a pie y vi cajas, papel de baño, bolsas de arroz, etcétera, apiladas. ¿Qué hacían ahí? ¿Se mandarán a los damnificados? ¿Cómo sé? ¿Por qué debo confiar que eso pasará? Y pensemos en el número enorme de centros de acopio en donde, por ejemplo, en los últimos días quedaron algunos "sobrantes" porque recién les llegaron esos donativos en especie. ¿Se entregarán? ¿A quién le rinden cuentas? Finalmente si deciden por ejemplo, quedarse con unas bolsas de frijol, ¿quién las va a extrañar? ¿O quién les va a reclamar algo? Y si consideramos que la mitad del país vive en la pobreza, entonces estos centros de acopio pueden servir para ayudarse a sí mismos, cosa que está mal, porque no habría sido la idea original de dichos centros.

Pero si esto fuera poco, voy caminando por la calle y veo a un tipo con una alcancía pidiendo para el Teletón, indicando que lo que se recaude es para los damnificados de los sismos. ¿Es neta? Y entonces empiezo a pensar que ¿cuál teletón? es un vivales más. Y poco después veo a otro con otra alcancía que dice algo así como "México de pie", y también pide dinero a los automóviles en los altos. Vamos, pedir siempre resulta fácil y lo es más que el ponerse a trabajar. Y toda esa gente que sale con sus alcancías, ¿Por qué mejor no trabaja y dona sus salarios? ¿Por qué hay que pedirle a los demas? ¿Por qué no pedirle, perdón, exigirle al estado que cumpla con sus obligaciones? Misterio.

Yo dejé de dar dinero en la calle cuando en una ocasión, que fui a la Delegación Benito Juárez a hacer mi pasaporte, y estaba esperando que me lo entregaran, platiqué con una señora que vestida como enfermera, con una alcancía en forma de pequeña maletita de cuero, pedía dinero en la calle. Ella me contó que el dinero que juntaba lo llevaba a no sé qué lugar en donde abren la dichosa maletita y le dan la mitad de lo recaudado. Así de simple es el asunto.

En suma, creo que de verdad, dejémonos de más teletones, aunque el cretino de Fernando Landeros llore porque la gente ya no quiere cooperar debido a la propaganda en contra que se ha difundido ya por años en las redes sociales. Por ejemplo, con los damnificados del sismo, ¿por qué no pedirle al gobierno que use los 9 mil millones de pesos, más todos los donativos de empresas y personajes públicos, para aliviar la situación? ¿Por qué esa insistencia de que la ciudadanía se siga "mochando"?

Saturday, September 30, 2017

De sismos y ciudadanía



Dentro de un par de días habrán pasado dos semanas desde el espantoso sismo del 19 de septiembre del 2017. Como pasó en 1985, la ciudadanía se volcó para ayudar a mucha gente que quedó atrapada en edificios y construcciones colapsadas. Como hace 32 años, el gobierno resultó casi de adorno y hoy, gracias a las redes sociales, hubo una comunicación que no se pudo tener en el 85.

Ahora los ciudadanos tienen voz y opinan -muchas veces sin bases- de cuanto tema se les ocurre. Las redes sociales guardan todos esos bytes de las infinitas discusiones e intercambios de opiniones y esto enriquece nuestro entorno muchas veces.

Sin embargo, cuando ocurren los sismos y pasa gradualmente la emergencia, entonces no faltan los personajes que en el sitio de videos más famoso del mundo, YouTube, expresan sus opiniones sobre lo que se debe seguir haciendo o bien, sobre lo vivido y lo que se espera que ocurra con la ciudadanía.

Y así tenemos a varios actores y actrices, como Eugenio Derbez, que siempre tiene que promoverse en cuanto lugar puede, a decir que él no esperaba ver que la ciudadanía hubiese actuado como actuó después de la sacudida que nos dio el sismo. Y supone que ya México cambió y que ganamos un nuevo México en donde la corrupción y el egoísmo se quedan atrás. Pero la realidad es que todo su discurso son palabras huecas porque hay algo que rebasa todas las buenas intenciones, el sobrevivir día a día.

Y sí, quisiéramos pensar que México cambió, pero no lo veo realmente. Por ejemplo, ¿se va a reconstruir la ciudad? Suponemos que sí por lo que sí por lo que dijo Peña Nieto. ¿Y los fondos apá? ¿Y la transparencia? Bien gracias. ¿Por qué nadie levanta la voz para que se dé una relación de donativos y del cómo se usará, del cómo acceder a ellos? De eso nada.

Lo grave es que todo eso los políticos lo saben y no dirán nada porque entienden perfectamente que con el correr del tiempo regresaremos a lo que es México, este país desorganizado, mal hecho, que no sirve (dixit Russek), en donde el que no tranza no avanza y en el que eventualmente los del poder decidirán sobre el futuro de todos nosotros pero siempre a favor de ellos.

Nada va a cambiar porque simplemente no hay líder moral en este sentido. Ya más de uno dirá que está López Obrador, y aunque no tiene cola que le pisen, es claro que con este país de tramposos y en donde jamás se respeta la decisión en las urnas, que llegue a la presidencia será imposible y por ende, terminará el Peje mandando al diablo a las instituciones y vivirá hasta su último respiro gracias a su partido, Morena.

Y lo peor es que si este escenario se cumple no pasará nada. Todo seguirá igual. El sismo cimbró 50 segundos a esta ciudad y quizás a este país por entero, pero será como esas catástrofes que habremos de apechugar porque la vida sigue. Yo dudo que algo cambie sin un líder verdadero, uno que ponga a temblar de verdad a la farsa institucional, uno que de verdad termine ganando las elecciones y juzgando a todos estos ladrones de cuello blanco que cada seis años llevan a este país a la quiebra. Mientras no exista algo así, todo habrá de pasar como si nada.

Y si alguien cree que las redes sociales, sus críticas, sus memes, sus videos, todo lo que se ve en ellas, incide para que las cosas cambien, pues les tengo noticias. No es así. Los políticos lo saben, los del gobierno lo saben. Son válvulas de escape de la ciudadanía en donde podemos mentar madres y decirle al presidente que chingue su madre, pero eso no cambia un ápice a este país, aunque quizás le da más calma a quien insulta al mandatario, el cual -cabe decir- ni nos ve y ni nos escucha.

Así pues, todo quedará en esas buenas intenciones, aunque de buenas intenciones esté empedrado el infierno.

Sunday, September 24, 2017

32 años después y seguimos sin aprender nada



México es un país en donde la simulación es cotidiana. Nos hablan de que hay leyes para todo, pero en el fondo todo termina en la corrupción en todos los órdenes de la vida. Y así como hay corruptelas para otorgar proyectos millonarios, también las vivimos cuando el policía nos detiene por una falta de tránsito, sea real o ficticia, que se arregla normalmente con una mordida. A eso mi hermano le dice "simplificación administrativa", en una de sus ironía.

Pero con el sismo del pasado 19 de septiembre regresamos a lo que ocurrió hace 32 años. Hubo un simulacro de sismo a las 11 am en todo el país, pero eso y nada es lo mismo, porque no hay compromiso, porque nadie se lo toma en serio, porque en dicho simulacro no se da nada parecido a lo que pasa en un sismo. Me explico: yo estaba en la sala de cómputo de la biblioteca de la Facultad de Ciencias, y me informaron que diez minutos antes de las 11 cerrarían la misma "para que todos fuesen al simulacro y nadie se quedara trabajando". Entonces, 10 minutos antes salimos todos de la sala de cómputo, con nuestras pertenencias.

Pero dos horas y 15 minutos después ocurrió el movimiento telúrico y ahí vi salir a gente corriendo, cosa que en principio debería de evitarse. Ahora el laboratorio donde daba clases se quedó vació en menos de un par de minutos y muchos alumnos no sacaron sus pertenencias. Simplemente dejaron todo en el salón (y así hice yo).

Y entonces comenzó una errática organización al respecto. Los ingenieros, coordinadores, y demás personajes académicos de la Facultad de Ingeniería, comenzaron a organizarse y lograron en menos de una hora tomar decisiones importantes. Cerraron la Facultad y hallé que toda Ciudad Universitaria sería desalojada.

Como no había transporte público, caminé desde la Universidad a casa de mi madre y no parecía haber daños en los edificios por el trayecto en el que estaba. Ya comenté que llegué a casa de mi madre y no había luz, la cual llegó a las  5 de la tarde y entonces enfrentamos las mismas escenas que se vivieron hace 32 años, y el mismo caos, y los mismos voluntarios espontáneos y la supuesta coordinación del gobierno en el desastre.

Con el paso de las horas y los días, ahora con Internet y las redes sociales, hemos leído sinfín de peticiones de ayuda, de material, de comida, de materiales como picos y palas. Y entonces se apela a la sociedad civil a que lleve generadores de electricidad, materiales como los mencionados, comida, agua, etcétera. Y no es que eso por definición esté mal, pero yo me pregunto: ¿Y el fondo para los desastres nacionales que tiene unos 9 mil millones de pesos, dónde está? No he visto que se haya comprado una sola pala, un solo pico, con dicho fondo. Y además de eso, tenemos empresas como Google y Facebook, en donde cada una ha donado un millón de dólares para ayudar en la tragedia. Salma Hayek donó 300 mil dólares y el Vaticano sólo 150 mil dólares, que me parece casi una grosería siendo el propio Vaticano, pero en fin. El asunto es que ¿a qué cuenta depositaron? ¿Cómo se puede acceder a ese dinero? ¿Por qué en este sentido nada se transparenta? ¿Cómo podemos saber los mexicanos que ese dinero se ha usado para lo que fue donado y no para embolsárselo?

La realidad es que de nuevo, estamos actuando como hace 32 años, pero con el agravante de que no aprendimos nada. Nuestra cultura de la prevención es otro mito del gobierno y además, a la hora de apoyar, el gobierno se hace "pato", como se dice coloquialmente, es decir, no se ve que realmente el gobierno federal haga su tarea. De nuevo, en su mayoría las cosas se están haciendo gracias al esfuerzo ciudadano.

Y me pregunto ¿por qué no hemos hecho nada en serio en estos 32 años? Tenemos a las fuerzas armadas que no entran ninguna guerra des de hace muchos más años y que cuesta al Estado mucho dinero. ¿Por qué no se organiza de verdad algo entre los militares y la ciudadanía para que en el momento de que ocurra el sismo estemos ya con un plan de trabajo? Sí, no podemos saber qué edificio se caerá y dónde habrá que acudir, pero si de verdad hubiese organización, bien podríamos tener de inmediato los fondos listos para ser usados en el desastre. Y si he pensado en las fuerzas armadas es porque ahí están, porque supuestamente tienen ya disciplina castrense y bien que mal, podrían organizar efectivamente las operaciones de rescate con un liderazgo claro, como por ejemplo, en lo que se refiere a suministros de agua, comida, materiales, motosierras, elementos de higiene, vendas, medicinas, etcétera.  Quizás, para evitar que con el tiempo esta organización se maleara o se corrompiera, debería haber un contrapeso ciudadano. Y tener un seguimiento constante porque creo que tampoco hemos aprendido que vivimos en una zona sísmica.

Yo no quiero pensar que de pronto un país nos invadiera porque si así fuera, no habría la mínima organización para repeler cualquier amenaza a la nación. En la Segunda Guerra Mundial, los Aliados trabajaron con disciplina y todo el desarrollo fue para apoyar el esfuerzo de la guerra. Hoy, que no estamos en guerra con nadie, no podemos lidiar con estas catástrofes naturales porque nunca nos hemos organizado de verdad, porque nos han vendido la mentira de la protección civil y de la cultura de la prevención. Nada de eso sirve.

Vamos, que lo más lamentable es que no veo ninguna iniciativa al respecto y con el tiempo olvidaremos todo esto que está pasando y nos acordaremos de nuevo cuando nos llegue el siguiente sismo. Parece que al mexicano le gusta improvisar y nunca se piensa preparar de verdad. Triste realidad que vivimos.