TL;DR QR-код продолжает работать, если замазать маркером четверть его площади, наклеить сверху логотип или оторвать угол. Это математически точная избыточность, которая на максимальном уровне коррекции занимает около 60% всех модулей кода. Под катом — почему так, как это устроено, немного кода на Python и при чём здесь Toyota 1994 года.
Маленький эксперимент
Если вы возьмете обычный QR-код, ведущий на habr.com. Откроете редактор и нарисуете поверх него кошку. Кривую, фломастером — какую угодно, то сканер всё равно прочитает ссылку.
Закрасите четверть площади сплошным чёрным? Прочитает.


