¿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.