Выравнивающие маркеры (Alignment Pattern)
Небольшие квадраты 5×5 модулей с точкой в центре внутри QR-кода. Компенсируют перспективные искажения при сканировании под углом или с изогнутой поверхности. Появляются с версии 2.
Выравнивающие маркеры — служебные элементы QR-кода, которые помогают сканеру восстановить геометрию символа, когда он снят не строго перпендикулярно. Каждый маркер это квадрат 5×5 модулей: тёмная рамка, светлое кольцо внутри и один тёмный модуль в самом центре. Декодер находит эти опорные точки и распрямляет изображение, пересчитывая координаты каждого модуля сетки.
Зачем нужны выравнивающие маркеры
Три крупных квадрата по углам задают общую ориентацию кода, но их недостаточно, когда символ большой и снят под наклоном или лежит на изогнутой поверхности — бутылке, рукаве, мятой этикетке. Перспектива искажает сетку неравномерно: ближний край плотнее, дальний растянут. Выравнивающие маркеры расставлены по полю как реперные точки: декодер знает их эталонное положение и по смещению вычисляет искажение, возвращая модули на свои места. Без них крупные версии часто не читались бы под углом.
Как расположены по версиям
В версии 1 (21×21 модуль) выравнивающих маркеров нет вовсе — код маленький, трёх угловых искателей хватает. Начиная с версии 2 появляется один маркер, ближе к правому нижнему углу. Чем выше версия, тем маркеров больше: они выстраиваются в регулярную сетку на пересечениях расчётных линий. В старшей, 40-й версии (177×177 модулей) таких маркеров 46. Позиции стандартизованы в ISO/IEC 18004 — генератор берёт их из таблицы, а не рисует произвольно.
Чем отличаются от позиционных маркеров и синхрополос
Легко перепутать три типа служебных элементов, но роли у них разные. Позиционные маркеры (finder pattern) — три больших квадрата 7×7 модулей в углах; по ним камера мгновенно находит код и понимает его поворот. Синхрополосы (timing pattern) — чередующиеся тёмные и светлые модули линией между угловыми квадратами; они задают шаг сетки и номер каждой строки и столбца. Выравнивающие маркеры меньше (5×5), их может быть много, и отвечают они за тонкую коррекцию перспективы уже внутри поля. Посмотреть, как это выглядит на живом коде, можно в генераторе QR.
Частые вопросы
С какой версии QR-кода появляются выравнивающие маркеры?
В версии 1 (21×21 модуль) их нет — код небольшой, и трёх позиционных маркеров в углах достаточно для чтения. Первый выравнивающий маркер добавляется в версии 2 и располагается ближе к правому нижнему углу. Дальше с ростом версии их число увеличивается, а в старшей, 40-й версии таких маркеров уже 46.
Чем выравнивающий маркер отличается от позиционного?
Позиционный маркер (finder pattern) — крупный квадрат 7×7 модулей, их всегда три, в углах кода; по ним сканер находит символ и определяет поворот. Выравнивающий меньше, 5×5 модулей с точкой в центре, и его задача — компенсировать перспективное искажение внутри поля. В крупных версиях выравнивающих маркеров бывают десятки, позиционных — всегда ровно три.
Зачем нужен выравнивающий маркер, если код снимают прямо?
При идеально перпендикулярной съёмке ровного кода он почти не влияет. Но в реальности код часто наклонён, напечатан на изгибе или снят с руки под углом — тогда сетка модулей искажается неравномерно. Выравнивающие маркеры дают декодеру опорные точки с известным положением, по которым он распрямляет картинку и не путает соседние модули.
Можно ли убрать выравнивающие маркеры, чтобы освободить место?
Нет. Их положение и вид жёстко заданы стандартом ISO/IEC 18004: генератор обязан ставить маркеры на расчётные координаты для данной версии, иначе код перестанет соответствовать спецификации и сканеры его не прочитают. Дизайнерские QR меняют цвет и форму модулей, но служебные элементы, включая выравнивающие маркеры, трогать нельзя.