Извиняюсь. Дело в том, что пока равнял по одному краю, немного криво стало с другого. В равномерности клеточки я уверен. А вот в QR картинках не совсем. Возможно при масштабирование немного исказились.
вы контролер из аэроэкспресса? (у меня уже несколько раз проверяли валидность билета методом такого вот гениального взгляда на распечатку с баркодом, без всякой аппаратуры :))
Человеческий мозг способен творить чудеса. После некоторых тренировок можно действительно научиться читать коды. Даже url. В каких-нибудь стандартизированных применениях, например при считывание типового номера, можно процедуру декодирования свести буквально к 2-3 шагам. Причём, с очень большой вероятностью маска будет использоваться одна и та же.
«Тоже мне бином Ньютона» (с) можно было бы сказать, хотя читать QR-код… Но если профессия требует, научиться возможно.
Я вот на первом курсе свободно перфокарты читал (не говоря уж о перфолентах). Девушки-операторы, набивавшие их в ВЦ, часто ошибались. И тогда наличие иголки и ПВА экономили время, учитывая, что курсовые и семестровки выполнялись в жестком лимите времени.
Перед тем как писать статью я пробовал декодировать несколько QR кодов. С листочком бумаги получается довольно быстро. Специально не засекал. Пробовал и без бумаги — в голове. Уже сложнее. Часто сбиваюсь — квадратики расплываются.
Статья хорошая. Помогает понять как работают декодеры.
А вот лично руками я буду выяснять зашифрованное только если в 2012 все человечество будет в опасности, а чтобы спасти всех нужно ввести код, зашифрованный в qr коде, а все устройства будут уничтожены вирусом на тот момент.
«До взрыва оставалось пять минут. Он добрался до инструкции по отключению бомбы-которая-взорвёт-всю-солнечную систему. Код отключения был зашифрован в QR-коде… Он достал свой GooglePhone и в этот момент батарея полностью разрядилась. Решалась судьба всей Солнечной Системы… И тут он вспомнил про статью, которую прочёл недавно на одном айтишном сайте...»
Я может-быть не в тему, но меня всё чаще посещает мысль, что блоги и посты не дают рождаться новым книгам, учебникам, трудам. Есть у человека допустим потенциал. Он потратил силы, написал пост или завёл блог. Получил кучу восторженных коментов и… успокоился. В психиатрии это называется положительное закрепление.
Я сейчас поэкспериментировал. Взяв ASCII таблицу и листочек с ручкой, я расшифровал код первой версии на странички Wikipedia за 6-7 минут. Самые проблемные места: много времени уходит на переписывание с картинки значений бит (проверяю 2 раза), также уходит время на двоичную арифметику. В итоге получилось слово «Ver1», 8-битный режим, маска i mod 2 ==0, т.е. строки с инверсией и без — чередуются.
Те кто обладают навыками в двоичной арифметике — попробуйте расшифровать, думаю после некоторых тренировок подобные коды можно расшифровывать за 3-4 минуты с листочком, а без неё и того быстрее.
Иногда посещали страшные мысли: а что, если все надписи на улицах заменят на QR-коды?!
Теперь знаю решение, спасибо автору: запасаемся листочками в клеточку и фломастерами :)
да, на Хабре где-то был топик-ссылка, где хороший человек в своём блоге рассказывает о QR коде. Надо отметить, что в QR существенные сложности для понимания могут составить коды, корректирующие ошибки.
Пока читал статью меня больше всего интересовало как же научить компьютер находить эти QR-коды. Это вам повезло у Вас клеточки тут. А я вот сделал фото недавно и там клеток нет нужно как-то выравнивать QR-код. Расскажите как это можно сделать?!
Серые области — это области, к которым не применяется маска. Почему она не применяется? Потому что эти области несут иное (относительно контекста в 4-ом шаге) функциональное назначение, про них говорилось на 0-ом шаге. Если Вас интересуют детали — взгляните на спецификацию: там есть визуализация всех типов масок, регламентируемых стандартом.
Я правильно понимаю, что маскируется только к индикатору режима и области непосредственно данных? Что и отображено блоком черных пикселей в визуализации?
Если я Вас правильно понял, то картинка должна ответить на вопрос.
D-блоки — это полезные данные, они располагаются по площади картинки, начиная с правого нижнего угла. Подробнее об этом можно прочитать в спецификации (раздел 8.7.3 Symbol character placement).
Возможно, solarplexus имел в виду «как заполняется часть пространства для данных, оставшаяся незанятой самими данными, если в QR такого размера помещается больше данных, чем есть».
В этом случае ответ «заполняется чередующимися байтами 0xEC и 0x11 до нужной длины».
Читаем QR код