Cómo Funciona Técnicamente el Escaneo de Códigos QR
Cómo funciona técnicamente el escaneo QR: captura de imagen, binarización, finder patterns, corrección de errores Reed-Solomon y el pipeline completo de 8

Este articulo fue escrito por el equipo de QR Nova. Desarrollamos software de codigos QR, lo que puede influir en nuestra perspectiva.
Tu teléfono decodifica un código QR en menos de 100 milisegundos. En ese tiempo, captura un fotograma de video, convierte una fotografía de gradientes en una cuadrícula binaria, localiza tres objetivos de esquina usando una proporción que se mantiene en cualquier ángulo, corrige la distorsión de perspectiva, muestrea de 441 a 31,329 celdas individuales, ejecuta aritmética polinomial sobre un campo finito para recuperar bytes corruptos, y entrega una URL o cadena de texto. Todo antes de que hayas registrado conscientemente que apuntaste la cámara. La mayoría de las explicaciones se detienen en "tu teléfono lee el patrón". Esta recorre cada paso de cómo funciona técnicamente el escaneo de códigos QR, desde fotones crudos hasta payload decodificado, siguiendo el pipeline definido en ISO/IEC 18004.
TL;DR
- El pipeline tiene ocho etapas distintas: captura de imagen, binarización, detección de finder patterns, corrección de perspectiva, muestreo de cuadrícula, decodificación de formato, extracción de datos y corrección de errores Reed-Solomon.
- Los finder patterns, los tres cuadrados en las esquinas, son lo que hace que los códigos QR se puedan escanear en ángulos. Su proporción 1:1:3:1:1 es la clave.
- La corrección de errores Reed-Solomon funciona tratando los datos como un polinomio sobre GF(256). Con nivel H, hasta el 30% de las palabras código pueden estar corruptas y recuperarse completamente.
- Los fallos de contraste y las zonas de silencio faltantes son las dos causas físicas más comunes de fallo de escaneo, ambas afectan etapas que se ejecutan antes de que la corrección de errores pueda ayudar.
- La computación real toma menos de 30ms. El retraso que percibes es el autoenfoque de tu cámara, no el decodificador.
Etapa 1: captura de imagen y binarización
Generate your first QR code — free
EmpezarLa cámara de un teléfono no ve módulos blancos y negros. Captura un gradiente de luminancia continuo: datos de fotograma JPEG o raw donde cada píxel tiene un valor de 0 a 255. El primer trabajo del decodificador es convertir esa imagen en escala de grises en una imagen verdaderamente binaria. Cada píxel se convierte en 0 (módulo oscuro) o 1 (módulo claro). Sin intermedios.
El enfoque ingenuo es elegir un umbral global de 128 y llamar a todo lo más oscuro "negro". Esto se desmorona en el momento en que un código QR está impreso en una superficie ligeramente reflectante, se escanea bajo luz desigual, o se coloca cerca de una ventana brillante. La parte del código en sombra puede promediar alrededor de 60 mientras la parte iluminada promedia alrededor de 180; un solo umbral global clasifica mal una de ellas.
Los decodificadores de producción usan umbralización adaptativa (local) en su lugar. La imagen se divide en una cuadrícula de tiles pequeños (ZXing usa un tamaño de bloque de aproximadamente 1/8 del ancho de la imagen). Para cada tile, se calcula un umbral local a partir del histograma de luminancia solo de esa región. Un píxel cuenta como oscuro si su valor cae lo suficientemente por debajo de la media local, típicamente por un delta de 5 a 10. Así, una sombra sobre la esquina superior izquierda del código no afecta el umbral aplicado a la esquina inferior derecha.
Lo que sale es un bitmap binario donde cada celda del código QR está representada como negro sólido o blanco sólido, asumiendo que el contraste original era adecuado. Por esto el contraste no es una preocupación cosmética. Un contraste bajo produce valores de píxel ambiguos que la umbralización adaptativa no puede clasificar de forma confiable. ¿Un código QR azul marino oscuro sobre fondo gris oscuro? Muerto en la etapa 1, antes de que cualquier otro paso se ejecute.
Etapa 2: encontrar los finder patterns
Con una imagen binaria lista, el decodificador necesita localizar el código QR dentro de ella. Los anclajes son los tres finder patterns: los grandes cuadrados concéntricos en las esquinas superior izquierda, superior derecha e inferior izquierda de cada código QR.
Cada finder pattern tiene una estructura específica: un cuadrado central oscuro de 3x3, rodeado por un borde claro de 1 módulo de ancho, rodeado por un borde oscuro de 1 módulo de ancho. Escanea cualquier línea horizontal o vertical a través del centro y la secuencia de longitudes de corrida de píxeles oscuros y claros produce la proporción 1:1:3:1:1. Uno oscuro, uno claro, tres oscuros, uno claro, uno oscuro.
El decodificador explota esto escaneando cada fila de la imagen binaria de izquierda a derecha, contando corridas de píxeles del mismo color. Cada vez que aparecen cinco corridas consecutivas, verifica si sus longitudes satisfacen la proporción 1:1:3:1:1 (dentro de una tolerancia de aproximadamente 0.5x). Los puntos centrales candidatos se registran. Luego el mismo escaneo se ejecuta verticalmente a través de la columna de cada candidato, confirmando que la proporción se mantiene en ambas direcciones. Donde las confirmaciones horizontal y vertical se intersectan, tienes un centro de finder pattern de alta confianza.
Esto es lo que lo hace inteligente: la proporción es invariante a la escala y la rotación. Ya sea que el código QR tenga 50 píxeles de ancho o 500, ya sea que esté rotado 45 grados, la proporción se mantiene. La geometría del finder pattern codifica la orientación, no los módulos de datos. Localiza tres de ellos y sabes inmediatamente la posición, escala y rotación del código en la imagen.
La zona de silencio (el borde blanco obligatorio de 4 módulos alrededor del código) existe para servir a este paso. Sin ella, el escaneo 1:1:3:1:1 genera falsos positivos de elementos de fondo oscuro adyacentes al finder pattern, o el cálculo del bounding box para la extensión del código se desajusta. Las zonas de silencio faltantes son una de las fuentes más comunes de fallos de escaneo intermitentes en códigos que se ven perfectamente bien a simple vista.
Etapa 3: corrección de perspectiva
Las cámaras raramente enfrentan un código QR de frente. El código está inclinado, sesgado o fotografiado desde un ángulo que hace que un patrón cuadrado aparezca como un trapezoide. Leer posiciones de módulos de una imagen distorsionada produce valores incorrectos, así que el decodificador revierte la distorsión primero.
Con los centros de los tres finder patterns conocidos, más el alignment pattern (presente en versiones 2+) o la cuarta esquina inferida, el decodificador tiene cuatro puntos conocidos en la imagen distorsionada que corresponden a cuatro posiciones conocidas en una cuadrícula ideal de frente. Un problema clásico de homografía: encontrar la matriz de transformación de perspectiva 3x3 que mapea las coordenadas distorsionadas a la cuadrícula canónica.
La homografía se calcula usando transformación lineal directa (DLT) o un solver similar. Una vez conocida, la posición canónica del centro de cada módulo se mapea de vuelta a una coordenada de píxel en la imagen original, indicando al decodificador exactamente qué píxel muestrear para cada celda de la cuadrícula. La mayoría de las implementaciones hacen esto de forma diferida: calculan la transformación una vez, luego muestrean cada módulo bajo demanda en lugar de deformar toda la imagen.
Para códigos QR de versiones más altas (versión 7 y superior, que pueden tener regiones de datos densas cubriendo un área física grande), la deriva de perspectiva local a través del área del código se vuelve significativa. Los alignment patterns, pequeños cuadrados concéntricos incrustados en el área de datos a intervalos regulares, sirven como anclajes de calibración adicionales. El decodificador muestrea los centros de los alignment patterns y los usa para refinar el modelo de perspectiva localmente, dividiendo el código en regiones más pequeñas cada una con su propia cuadrícula de muestreo corregida.
Etapa 4: muestreo de la cuadrícula
Después de la corrección de perspectiva, el decodificador sabe dónde está el centro de cada módulo en la imagen original. El muestreo es directo: para cada celda en la cuadrícula del código QR, lee el valor del píxel en la coordenada mapeada y lo umbraliza a blanco o negro.
Algo que vale la pena entender: este muestreo reutiliza el umbral adaptativo ya calculado para esa región de la imagen, no un nuevo umbral global. El decodificador ha estado trabajando en espacio binario desde el paso uno. Solo ahora está recuperando valores en coordenadas específicas.
El resultado es una cuadrícula booleana 2D, una matriz NxN de valores oscuros y claros donde N va desde 21 (versión 1) hasta 177 (versión 40). La mayor parte son datos, pero ciertas regiones tienen significados fijos: los propios finder patterns, los timing patterns (franjas alternadas blanco-negro que calibran el espaciado de la cuadrícula), el módulo oscuro (siempre oscuro en una posición fija) y los alignment patterns. El decodificador enmascara estas áreas estructurales y se concentra en todo lo demás.
Etapa 5: lectura de información de formato y versión
Antes de extraer cualquier dato, el decodificador necesita dos piezas de metadatos estructurales: la información de formato y, para códigos versión 7+, la información de versión.
La información de formato vive en dos copias idénticas en posiciones fijas adyacentes a los finder patterns. Codifica 15 bits: 2 para el nivel de corrección de errores (L, M, Q o H), 3 para el patrón de máscara de datos, y 10 bits de corrección de errores BCH que protegen la propia información de formato contra hasta 3 errores de bit. Estos bits se someten a XOR con un patrón de máscara fijo (101010000010010) antes del almacenamiento para que nunca sean todos cero, incluso para combinaciones desfavorables.
El patrón de máscara es crítico. Los datos QR crudos a menudo tienen corridas largas de módulos del mismo color, y el paso de binarización los lee mal como artefactos de borde. Durante la codificación, uno de ocho patrones de máscara XOR predefinidos se aplica a los módulos de datos para romper dichas corridas. El codificador evalúa las ocho máscaras y elige la que produce el patrón más equilibrado y de alto contraste por una puntuación de penalización. Sin saber qué máscara se aplicó, el decodificador no puede deshacerla, y los bits de datos son basura.
Obtener la información de formato mal es fatal. ¿Ambas copias corrompidas más allá de la capacidad de corrección BCH? El decodificador no puede determinar el patrón de máscara y no puede descifrar nada. Una etiqueta o rasguño cubriendo la esquina adyacente a un finder pattern es mucho más dañino que una destrucción equivalente en cualquier otra parte del código.
Etapa 6: extracción de las palabras código de datos
Con la máscara conocida, el decodificador la aplica de vuelta por XOR sobre la región de datos, restaurando los bits codificados originales. Los datos se leen en un orden zigzag específico: empezando desde la esquina inferior derecha, dos columnas a la vez, leyendo hacia arriba y luego hacia abajo en un camino serpentino alternante, saltando las regiones estructurales fijas. Cada módulo de datos se visita exactamente una vez.
El flujo de bits se agrupa en palabras código de 8 bits. Los primeros bits especifican el modo de codificación: numérico (10 bits por tres dígitos), alfanumérico (11 bits por dos caracteres), byte (8 bits por carácter) o kanji (13 bits por carácter). Sigue un campo de conteo de caracteres, luego los datos codificados, una secuencia terminadora y relleno para completar la capacidad restante.
Después de las palabras código de datos vienen las palabras código de corrección de errores, calculadas durante la codificación por Reed-Solomon y añadidas en bloques definidos. La siguiente etapa las usa para verificar y reparar los datos.
Etapa 7: corrección de errores reed-solomon
Este es el paso que hace que los códigos QR sobrevivan al daño físico. Requiere un poco de aritmética de campos finitos, pero el concepto es accesible sin demostraciones completas.
La base del campo finito
Reed-Solomon opera sobre GF(256), un Campo de Galois con 256 elementos. Piénsalo como un sistema numérico donde cada valor es un solo byte (0-255), pero las reglas aritméticas difieren de la matemática de enteros ordinaria. La suma es simplemente XOR. Sin acarreos, completamente reversible. La multiplicación se define por un polinomio primitivo; en códigos QR, el campo usa x^8 + x^4 + x^3 + x^2 + 1. Cada elemento distinto de cero de GF(256) puede expresarse como una potencia de una raíz primitiva alpha, lo que simplifica la multiplicación a suma de exponentes módulo 255.
¿Por qué molestarse con un campo finito? En aritmética ordinaria, dividir polinomios produce fracciones. Sobre un campo finito, cada elemento distinto de cero tiene un inverso multiplicativo, así que la división polinomial siempre produce cocientes y residuos exactos dentro del campo. Esa propiedad es lo que hace funcionar todo el esquema de corrección de errores.
Codificación: añadiendo bytes de verificación
Durante la creación del código QR, los bytes de datos se tratan como coeficientes de un polinomio D(x). Se multiplica por x^r (desplazando a la izquierda por r posiciones, donde r es el número de palabras código de corrección de errores), luego se divide por un polinomio generador G(x) usando división polinomial larga sobre GF(256). El residuo de esa división, r bytes, se añade a los datos como las palabras código de corrección de errores.
El polinomio generador para r bytes de verificación es el producto de r factores lineales: G(x) = (x - alpha^0)(x - alpha^1)...(x - alpha^(r-1)) donde alpha es el elemento primitivo de GF(256). Para QR nivel H con 28 palabras código de corrección de errores por bloque, G(x) tiene 28 raíces.
Decodificación: calculando síndromes
En tu teléfono, el decodificador trata la secuencia de palabras código recibida (datos más bytes de corrección de errores) como un polinomio R(x). Si no hubo problemas, R(x) se divide exactamente por G(x) y el residuo es cero. Si se introdujeron errores, R(x) = C(x) + E(x) donde C(x) es el polinomio de palabras código correcto y E(x) es un polinomio de error con coeficientes distintos de cero en las posiciones corruptas.
El decodificador evalúa R(x) en cada una de las r raíces del generador: S_i = R(alpha^i) para i de 0 a r-1. Esos r valores son los síndromes. Todos cero significa un mensaje limpio. Cualquier síndrome distinto de cero significa que hay errores.
Localizando y corrigiendo errores
Dados los valores de síndrome, el decodificador ejecuta el algoritmo de Berlekamp-Massey para encontrar el polinomio localizador de errores, cuyas raíces corresponden a las posiciones de los bytes corruptos. Encontrar esas raíces (evaluando el polinomio en los 255 elementos distintos de cero del campo, un proceso llamado búsqueda de Chien) da las ubicaciones de los errores. Luego el algoritmo de Forney calcula las magnitudes de error en cada ubicación: cuánto aplicar XOR a cada byte corrupto para restaurar el valor correcto.
Para borraduras (posiciones donde el decodificador sabe que un byte no es confiable, como un módulo que cayó por debajo de un umbral de confianza durante el muestreo), la capacidad de corrección se duplica. Un código con r bytes de verificación corrige t errores donde t = r/2. Si k posiciones de borradura ya son conocidas, maneja hasta r - k errores desconocidos adicionales encima de eso. QR nivel H con 28 bytes de verificación por bloque corrige 14 errores desconocidos o 28 borraduras conocidas por bloque, o cualquier combinación intermedia.
Qué significa esto en la práctica
Un código QR versión 1-Q tiene 13 palabras código de datos y 13 palabras código de corrección de errores por bloque. Destruye 6 de esas palabras código de datos completamente (un rasguño que oblitere aproximadamente el 46% de la región de datos) y los 13 bytes originales siguen siendo recuperables. Por eso los logos incrustados en códigos QR funcionan: los módulos centrales están intencionalmente corruptos, y la corrección de errores absorbe la pérdida.
El límite es real, sin embargo. Excede la capacidad de corrección y el decodificador produce un resultado incorrecto (raro, porque la verificación final atrapa la mayoría de los fallos) o no devuelve nada. Los decodificadores de producción manejan casos límite verificando ambas copias de información de formato y reintentando con umbrales ligeramente variados. ZXing, por ejemplo, reintenta con parámetros de binarización progresivamente más gruesos antes de rendirse.
Etapa 8: reensamblaje del mensaje
Después de Reed-Solomon, el decodificador tiene una secuencia de bytes verificada. El paso final la desempaqueta según los campos de modo y conteo de caracteres leídos en la etapa 6.
Para modo byte (el más común para URLs), cada palabra código de 8 bits se mapea directamente a un byte Latin-1 o UTF-8. Lee el conteo de caracteres, toma esa cantidad de bytes del payload, produce la cadena final. El modo numérico mapea grupos de 10 bits a números decimales de tres dígitos; el modo alfanumérico mapea grupos de 11 bits a pares de dos caracteres de un alfabeto de 45 caracteres. Incluso puedes concatenar múltiples segmentos con diferentes modos en un solo código QR. Una URL con solo caracteres alfanuméricos seguida de un payload binario es perfectamente válida.
La cadena de salida es lo que tu teléfono te muestra: una URL, un número de teléfono, un mensaje de texto plano, un bloque de credenciales Wi-Fi. En este punto el trabajo del escáner ha terminado y el sistema operativo toma el control. Seguir la URL, marcar el número, solicitar conexión Wi-Fi.
Por qué el diseño del pipeline importa para la calidad del código
Conocer el pipeline cambia cómo deberías pensar sobre el diseño de códigos QR. Cada etapa tiene consecuencias prácticas.
- Binarización significa que la relación de contraste no es opcional. Necesitas al menos un 40% de diferencia de luminancia entre módulo y fondo para un escaneo confiable entre dispositivos. Los códigos oscuro-sobre-oscuro o claro-sobre-claro fallan en la etapa 1 sin importar el nivel de corrección de errores.
- Detección de finder patterns significa que las zonas de silencio son estructurales, no cosméticas. Los códigos que llegan hasta el borde de un área impresa sin margen fallan en la etapa 2.
- Sensibilidad de la información de formato significa que las esquinas adyacentes a los finder patterns deben protegerse del daño y la obstrucción. Incluso la corrección de errores nivel H no puede ayudar aquí, porque la información de formato se decodifica antes de que se conozca el nivel de corrección de errores.
- Capacidad de Reed-Solomon significa que la tolerancia al daño es predecible y cuantificable. Para un código mostrado al exterior o impreso en un entorno de alto desgaste, elegir nivel Q o H y dimensionar generosamente da resiliencia real, no una promesa vaga de que "los códigos QR manejan el daño".
El generador de QR Nova te permite establecer el nivel de corrección de errores antes de crear un código, porque la elección correcta depende completamente de dónde vivirá el código. Un código mostrado en pantalla en un entorno controlado está bien con nivel M. Una etiqueta de vinilo que se espera que dure tres años en equipos al exterior justifica nivel H, incluso al costo de un código más denso y de versión más alta.
El desglose real de velocidad
En hardware de smartphone actual (probado en flagships iOS y Android de 2024-2025), así se desglosa el pipeline de decodificación por fotograma de video:
- Conversión a escala de grises y binarización: 2-5ms (optimizado con SIMD en librerías nativas)
- Escaneo de finder patterns: 3-8ms (lineal en la altura de la imagen)
- Corrección de perspectiva y muestreo de cuadrícula: 1-3ms
- Decodificación de formato + Reed-Solomon: menos de 1ms para códigos versión 1-10
Pipeline total: bastante menos de 30ms en un solo fotograma. A 30fps el decodificador tiene 33ms por fotograma; a 60fps, 16ms. De cualquier forma, la computación no es el cuello de botella. Esos 0.5 a 2 segundos que experimentas al escanear son casi completamente ópticos: el autoenfoque estabilizándose, desenfoque por movimiento de una mano inestable, y el tiempo que el código pasa parcialmente fuera del encuadre antes de que lo centres.
Esto también explica algo que molesta a la gente: escanear un código QR en una pantalla a veces es más difícil que escanear uno impreso. Las pantallas a alto brillo introducen resplandor que el paso de binarización trata como un halo claro alrededor de los módulos oscuros, reduciendo el tamaño efectivo del módulo por debajo de lo que el muestreador de cuadrícula espera. Reducir ligeramente el brillo de pantalla al mostrar un código QR no es superstición. Elimina un artefacto genuino de binarización.
Conclusión
Esa decodificación de cien milisegundos son ocho etapas computacionales distintas trabajando en secuencia, cada una dependiente de la anterior. La binarización convierte la óptica en datos. Los finder patterns proporcionan invariancia de orientación. La corrección de perspectiva mapea una captura del mundo real distorsionada a una cuadrícula canónica. La información de formato desbloquea la máscara. La aritmética Reed-Solomon sobre GF(256) recupera bytes corruptos con certeza matemática, hasta un límite definido.
Una vez que entiendes el pipeline, los fallos de códigos QR dejan de ser misteriosos. Un código que escanea de forma inconsistente casi nunca está "roto". Está golpeando un límite de etapa específico: contraste demasiado bajo para la binarización, zona de silencio demasiado estrecha para la detección de finder, región de formato dañada antes de que la corrección de errores pueda intervenir. Diagnostica la etapa y diagnosticas la solución.
Si estás generando códigos para uso en producción, ajusta el nivel de corrección de errores a dónde vivirá el código, mantén la zona de silencio intacta, y verifica el contraste programáticamente, no solo a simple vista. La matemática se encarga del resto.
Preguntas frecuentes
¿Cómo funciona técnicamente el escaneo de un código QR, paso a paso?
El escaneo de un código QR funciona técnicamente a través de ocho etapas: el lector captura una imagen, la convierte a blanco y negro mediante umbralización adaptativa, localiza los tres finder patterns en las esquinas, corrige la distorsión de perspectiva usando una transformación de homografía, muestrea cada módulo en la cuadrícula, lee la información de formato para determinar el nivel de corrección de errores y el patrón de máscara, extrae las palabras código codificadas, y luego ejecuta la corrección de errores Reed-Solomon para recuperar cualquier byte corrupto antes de finalmente decodificar el payload de datos en texto o una URL.
¿Qué son los finder patterns en un código QR y por qué importan?
Los finder patterns son los tres grandes objetivos cuadrados en las esquinas superior izquierda, superior derecha e inferior izquierda de cada código QR. Cada uno tiene una proporción oscuro-a-claro de 1:1:3:1:1 a lo largo de cualquier línea de escaneo que pase por su centro. Como esta proporción es invariante sin importar la escala o la rotación, un decodificador puede localizar y orientar un código QR incluso cuando la cámara está en un ángulo pronunciado o el código está parcialmente fuera del encuadre. Sin los finder patterns, el decodificador no tendría un ancla confiable para establecer la posición y orientación del código.
¿Qué es la corrección de errores Reed-Solomon y cómo funciona en códigos QR?
La corrección de errores Reed-Solomon trata los bytes de datos como un polinomio y agrega bytes de verificación adicionales calculados dividiendo ese polinomio por un polinomio generador sobre un Campo de Galois (GF(256)). Durante la decodificación, el receptor recalcula la misma división. Cualquier residuo distinto de cero revela que hay errores; los valores de síndrome permiten al decodificador localizar qué bytes están mal y calcular los valores correctos, hasta la capacidad de corrección del código. En códigos QR con nivel H, hasta el 30% de las palabras código pueden estar corruptas y recuperarse completamente.
¿Por qué importa el contraste del código QR para el escaneo?
El paso de binarización que convierte una imagen de cámara a módulos blancos y negros depende de detectar un límite claro de luminancia entre las celdas oscuras y claras. Cuando el contraste es bajo, por ejemplo, gris oscuro sobre negro, o amarillo claro sobre blanco, el algoritmo de umbral adaptativo puede asignar módulos al valor incorrecto. Un solo módulo incorrecto en una región de datos cuesta una palabra código; un módulo incorrecto en la región de información de formato puede causar que todo el intento de decodificación falle antes de que la corrección de errores siquiera se ejecute, porque el decodificador necesita la información de formato para conocer el patrón de máscara.
¿Puede un código QR dañado aún ser escaneado?
Sí, hasta el límite del nivel de corrección de errores usado. El nivel L corrige hasta el 7% de las palabras código, el nivel M hasta el 15%, el nivel Q hasta el 25% y el nivel H hasta el 30%. El daño físico, manchas de tinta u oclusión parcial que corrompe palabras código dentro de esos límites es completamente recuperable. La salvedad es que todos los bloques de información de formato deben seguir siendo legibles, porque el decodificador usa la información de formato para determinar el nivel de corrección de errores y la clave de desenmascaramiento antes de que pueda intentar la recuperación de datos.
¿Qué tan rápido ocurre realmente el escaneo de un código QR?
En un teléfono moderno a 60fps, el pipeline completo, binarización, búsqueda de finder patterns, corrección de perspectiva, muestreo de cuadrícula, decodificación de formato, Reed-Solomon y decodificación final, se ejecuta en menos de 30ms en un solo fotograma de video cuando el código está razonablemente bien encuadrado e iluminado. El retraso aparente que experimentan los usuarios casi siempre es el autoenfoque estabilizándose, no la computación de decodificación. Librerías como ZXing y ZBar están altamente optimizadas; el cuello de botella es óptico, no algorítmico.
¿Qué es la zona de silencio en un código QR y por qué importa?
La zona de silencio es el margen blanco obligatorio de al menos cuatro módulos que rodea los cuatro lados de un código QR. El algoritmo de detección de finder patterns funciona escaneando la proporción 1:1:3:1:1; sin la zona de silencio, un fondo oscuro puede producir coincidencias de proporción falsas positivas adyacentes a los finder patterns reales, o causar que el cálculo del bounding box calcule mal la extensión del código. Una zona de silencio faltante es una de las causas más comunes de fallos de escaneo intermitentes en códigos que por lo demás están bien diseñados.
Articulos relacionados
Arquitectura de Redirección QR Dinámica en Edge
Cómo funciona la arquitectura de redirección QR dinámica: cadena de escaneo a destino, latencia edge, caché, failover y vendor lock-in.
ISO 18004: El Estándar de Código QR Explicado
ISO 18004 es la especificación que sigue cada código QR. Qué define: estructura, modos de codificación, corrección de errores y el sistema de versiones.
Cómo Escanear un Código QR en Cualquier Teléfono
Cómo escanear un código QR en iPhone, Android o PC, cámara nativa, Google Lens y escaneo desde imágenes. Sin app necesaria. Guía para 2026.
Generate your first QR code — free
Empezar