Hace poco retomé un poco la lectura. Me gusta volver a leer algunas historias, pienso que, como con las personas, uno puede tener diálogos distintos cuando volvemos a leerlos. Las experiencias nos cambian con el tiempo, cambian la forma en como nos relacionamos con las personas, la forma en que leemos y la forma en como entendemos y aprendemos…
En fin, estaba leyendo “El escarabajo de oro”; lo he leído un par de veces, pero esta vez, al estar pasando mis ojos por las líneas, me vino a la mente la vez que me pidieron ayuda para resolver una cuestión.
No voy a mencionar aquí el motivo de la solicitud de la ayuda, aparte, fue hace mucho tiempo, cuando el estándar del código QR, o mejor dicho, la documentación era mas sencilla y escasa. En fin, la cuestión era la siguiente, había entre algunas fotos, un código QR, que no podía leerse y/o interpretarse a simple vista, estaba algo deteriorado y se necesitaba conocer la información almacenada en el código.
En ese momento recordé que, en algún momento de ociosidad, aprendí un poco de los códigos QR y (para variar) guarde algo de información (por si acaso). Además, casi como por casualidad, estaba curioseando con el programa “GIMP” (software de edición gráfica de código abierto). Lo que me dio la oportunidad de probar lo que estaba aprendiendo.
Ya no tengo la imagen inicial, pero he de decirles que al principio el código QR se veía con mucha dificultad. La imagen a continuación representa el primer “zoom” y corrección de ángulo en la zona de la fotografía donde estaba el código:
Después de mucho trabajar con la imagen del código, se logró algo como esto:
Ahora bien, parece algo mas razonable, pero ¿que sigue? Bueno, ahora viene lo aprendido del codigo QR. Los QR tienen ciertas partes que son “constantes”, estas sirven para reconocer la orientación, la dimensión y las proporciones al momento de escanear. No voy a ahondar mucho, pero para el tamaño del código en cuestión (QR versión 1), las partes constantes son las siguientes:
Que son la de posición (azul) y de “timing” (rojo y verde). Estas partes, una vez bien identificadas nos dan el tamaño en “píxeles” del código QR. Como se ve en la imagen anterior, parece que puede rescatarse de forma razonable el tamaño de cada “pixel” y así pasar a reconstruir el código.
La rejilla ayuda bastante, pero, ¿qué pasa cuando hay alguna duda acerca de si un cuadro es blanco o negro? ya se por una mala edición de la imagen, o una mancha preexistente en el código. Bueno el estándar del código QR tiene contemplado eso mediante la corrección de error Reed-Solomon (dejo el link para mejor referencia) y en pocas palabras, admite un cierto porcentaje de píxeles erróneos que no afectan la lectura del códigos, en este caso al rededor del 7% si mal no recuerdo.
Y no parece que tenga muchos con duda. Así que se procedió a rellenar píxeles:
Como se puede observar, no fue tan difícil, aparentemente y el resultado es el siguiente:
Y se pudo leer correctamente jejeje.
En fin, ¿a donde quiero llegar con la narración de esta breve aventura de códigos QR? Bueno, recordemos que en el cuento del escarabajo, Legrand, esta muy entusiasmado en resolver un acertijo y descifrar un código. En mi caso, estoy muy lejos de estar a la altura del genio de Legrand, pero me da gusto saber que puedo echar mano de los conocimientos que de pronto adquiero incluso por mera curiosidad, en resolver alguno que otro “acertijo” que cae en mis manos. Éste del código QR no es como tal un acertijo, lo acepto, pero fue la oportunidad de resolver algo que no estaba en mi zona de confort; fue, en su momento, un reto y creo que pude entender por un instante la pasión de Legrand…
Se que éste texto no resuelve ni ayuda en mucho, pero lo que quiero decir es en pocas palabras: Aprender algo nuevo nunca esta de mas. Hace crecer nuestro horizontes….
Sin mas por el momento…
Argos.
Un comentario en “Del escarabajo de Poe a los códigos QR”