¿Cómo creo y escaneo código QR en Ubuntu?

El 12 de marzo de 1954 y presente en el Sindicato de Empleados de
Comercio de Mar del Plata, Juan Perón explica la necesidad de compartir
un código común entre los Trabajadores, a la vez que explica cómo crear
o escanear Código QR en Ubuntu.

(...)

El hombre ha formado, a lo largo de generaciones en Comunidad, una
suerte de lenguaje, un código que comparte con su tribu y que le permite
transmitir sus ideas, sentires, etcétera. Esta es una de las
características de los Pueblos, la de permitirse un propio arte de
creación. Es indudable también que los hombres de trabajo comparten su
propio código común a fin de expresarse. Este debe ser sometido a un
convencionalismo tal que lo convierten por propio derecho en un lenguaje
capaz de portar la significancia que anhelan. Eso es lo que ha logrado
el Justicialismo.

En estos tiempos, los hombres me han premiado con la más satisfactoria e
importante misión con la que puede contar un soldado, que es la de
tornarme un vínculo de unión para los trabajadores argentinos.
Indudablemente que toda la formación profesional que he recibido sólo me
ha otorgado las herramientas necesarias para cumplir técnicamente este
magnánimo rol, pero el herramental humano he tenido que desglosarlo por
mí mismo. Sin duda ello no se aprende en ninguna academia: un Conductor
se nace.

Un Conductor interpreta a vista de águila el panorama y debe
constituirse en una Piedra de Rosetta que le permita leer el corazón de
sus Trabajadores, interpretar en ellos los anhelos de Felicidad y
Justicia Social. La tarea de traducir estos magnos objetivos en una
Realidad Efectiva, concreta y tangible, dable a ser defendida es lo que
nos debe orientar.

Pues bien, esta misma técnica puede llevarse a cabo en otros rudimentos
de la vida, a fin de ostentar un herramental potente y comprensible para
una multiplicidad de funciones. Sabemos que para que un código sirva
como instrumento para comunicar, realmente no importa su forma o cariz,
sino que fundamentalmente ha de poder ser reconocido por su emisor y por
su receptor si es que queremos que se torne en una efectiva manera de
comunicar.

Pues bien señores, tomemos el ejemplo del Código QR (literalmente
"respuesta rápida"). Se trata de un código de gráfico de escritura
estructurado matricialmente en un patrón bidimensional. El mismo fue
diseñado originalmente para el uso en aplicaciones robotizadas por parte
de la industria automotriz. Se trata de una etiqueta cuadrada -
normalmente de impresión monocroma, y cuya codificación contiene
información binaria. Esta etiqueta puede ser fácilmente legible de forma
computada por medio de un lector gráfico común.

Es útil para codificar en este gráfico información numérica,
alfanumérica, binaria, e incluso texto japonés kanji. Su empleo se ha
extendido como una alternativa superadora al clásico código de barra
URC, ya que puede contener mayor cantidad de información y puede leerse
con menor o nula intervención humana. Se los emplea además como método
para almacenar enlaces URL, direcciones de correo electrónico, tarjetas
de negocio digital (VCards), condiciones para darnos de alta en una red,
texto plano, etcétera.

El diseño del código permite escanearlo con un dispositivo de
reconocimiento óptico dotado con un programa de inteligencia artificial.
Este dispositivo realizará el reconocimiento y la traducción. Su
grafismo lo hace intrínsecamente fácil de leer ópticamente, en cualquier
sentido e incluso si no está colocado frente al lector. En el caso de
los móviles, existen varias aplicaciones efectivas para realizar la
decodificación.

Nunca está de más conocer que existen variadas versiones de códigos QR
provistos de distintos niveles de corrección de error en su algoritmo de
generación, ya que existe un equilibrio entre legibilidad óptica del
patrón, y la complejidad y capacidad de almacenamiento del mismo. Las
versión más utilizada es la 10, y se detallan de la siguiente manera:

Versión 1: Patrón de 21x21.
Versión 2: Patrón de 25x25.
Versión 3: Patrón de 29x29.
Versión 4: Patrón de 33x33
Versión 10: Patrón de 57x57
Versión 25: Patrón de 117x117.
Versión 40: Patrón de 177x177.

El Justicialismo se ha distinguido siempre por ofrecer las herramientas
más poderosas y de menor consumo para poder hacer nuestra computación de
una manera Justa y Soberana. Por tal motivo han de saber que Ubuntu está
capacitado para utilizar estos códigos QR en ambos sentidos, tantos para
crearlos como para leerlos.

A tal fin se pueden utilizar fotografías de los mismos registradas con
una resolución adecuada. La versión 10 del patrón QR puede ser resuelta
por una fotografía del código más o menos cercana tomada con una cámara
con una resolución de 640x480 píxels (por ejemplo, las webcams "VGA" de
calidad más mediocre.

Para disponer nuestro sistema, lo procedente es instalar primero las
aplicaciones necesarias para la terminal. Para ello abirmos una con
Ctrl+Alt+T e ingresamos el siguiente Comando de Organización:

sudo apt update ;

sudo apt-get install qtqr zbar-tools qrencode ;

Ambos programas nos permiten trabajar de forma muy confiable para lograr
resultados bidireccionales.

Por ejemplo, podremos analizar una imagen tomada de un código QR con el
programa zbarimg. Si deseamos tomar una fotografía digital de una de
ellas, es conveniente que la misma esté tomada de frente y relativamente
cerca. Naturalmente que lo ideal es que ocupe el 80% del cuadro, pero es
muy probable que funcione con menos. Suponiendo que ya contamos con la
fotografía del código QR y asumiento que la misma se llama
imagen_cod_qr.jpg, podríamos analizarla desde la terminal Linux
ingresando:

zbarimg "imagen_cod_qr.jpg"

El comando de arriba mostrará el texto que se encuentra codificado en la
imagen, y lo mostrará en la terminal.

Normalmente también acompañará la información con un mensaje que detalla
el tiempo que llevó el análisis, o mensajes de error. Si agregamos al
comando anterior la opción -q, no incluirá dichos mensajes de status.

Si en cambio queremos hacer el paso inverso, y generar un código QR a
partir de un texto, podremos utilizar.

cat archivo.txt | qrencode -s 10 -o codigo_qr.png

Esto codificará un archivo de entrada archivo.txt y lo codificará en una
imágen de un archivo de salida en forma de imágen QR codificada de
formato gráfico PNG, llamado en este caso codigo_qr.png.

O también podríamos crear una imagen codificada de un código QR con una
dirección URL incrustada en ella, simplemente agregandola. La sintaxis a
utilizar sería:

qrencode -s 10 -o up.png https://www.ubuntuperonista.blogspot.com

Naturalmente, si seguimos el estándar Vcard en un archivo, lo podremos
utilizar como una alternativa gráfica para extender nuestros datos
personales según dicho estándar (que se pueden agregar fácilmente a
clientes de mensajería). De esta manera lo podremos incorporar en
tarjetas de presentación impresas, y también contar con el archivo .vcf
o .vcard de referencia.

El programa QtQR en tanto permite hacer esto de una manera gráfica. Lo
ejecutamos desde Aplicaciones / Gráficos / QtQR.

Se abrirá una ventana dividida en dos paneles principales. Primero
debemos delimintar la categoría de trabajo (podremos elegir texto, URL,
marcador, contactos de agenda electrónica, SMS, MMS, etc. También
podremos especificar la escala de los píxels y el nivel de corrección de
error. Una vez introducido los datos QtQR irá generando la gráfica QR
codificada.

Para leer un código QR tenemos dos posibilidades: utilizar un archivo ya
obtenido, o bien escanearlo por medio de una cámara web (si está
conectada al sistema).  Para ello presionamos el botón Decodificar y
elegimos A través de Webcam.

Debemos asegurarnos que la webcam esté en foco (muchos modelos tienen un
lente rotativo que debemos ajustar a mano). Finalmente acercamos la
misma al código QR. Si la operación es exitosa, el sistema mostrará un
recuadro de color verde sobreimpreso sobre el código QR. Debemos cerrar
la ventana de captura de video presionando cualquier tecla.