Qraft

Corrección de perspectiva

La corrección de perspectiva (corrección proyectiva) es un procesamiento de imagen que convierte la distorsión trapezoidal que se produce cuando una cámara fotografía un objeto en ángulo en el estado cuadrado que se vería de frente. Mediante una matriz de transformación proyectiva, hace corresponder los 4 vértices del cuadrilátero distorsionado con los 4 vértices de un cuadrado.

En la decodificación de códigos QR, la corrección de perspectiva es imprescindible. Es raro escanear un código QR justo de frente, y casi siempre se apunta la cámara desde un ángulo oblicuo. En situaciones como mirar desde arriba un código QR colocado sobre una mesa o fotografiar de lado un código QR pegado en una pared, el código QR se captura deformado en forma de trapecio o de paralelogramo.

El escáner calcula la distorsión del código QR a partir de la posición relativa de los 3 patrones de búsqueda. Analiza cómo se han deformado los patrones de búsqueda, que deberían ser cuadrados, y aplica la transformación inversa para devolverlos a la forma cuadrada. Sobre esta imagen corregida se realizan después la binarización y la determinación de los módulos.

La precisión de la corrección de perspectiva depende de la precisión con que se detectan los patrones de búsqueda. Si una parte de un patrón de búsqueda está oculta o la imagen se toma desde un ángulo extremo (casi completamente de lado), la corrección se vuelve imprecisa y la lectura falla. Al colocar un código QR, se recomienda elegir una posición desde la que se pueda escanear con un ángulo de 30 grados o más.