Квадратный штрих код. Как работает QR-код: программа, назначение, принцип работы и применение


Иногда возникают такие ситуации, когда нужно прочитать QR код, а смартфона под рукой нет. Что же делать? В голову приходит лишь попробовать прочитать вручную. Если кто-нибудь сталкивался с такими ситуациями или кому просто интересно как же читается QR код машинами, то данная статья поможет вам разобраться в этой проблеме. В статье рассмотрены базовые особенности QR кодов и методика дешифрирования информации без использования вычислительных машин. Решение задачи непосредственного чтения информации с QR-картинки рассмотрим на примере двух кодов.
Чтобы понять, как извлечь данные из кода, нужно разобраться в алгоритме. Существует несколько стандартов в семействе QR кодов, с их базовыми принципами можно ознакомиться в спецификациях. Кратко поясню: данные, которые необходимо закодировать, разбиваются на блоки в зависимости от режима кодирования. К разбитым по блокам данным прибавляется заголовок, указывающий режим и количество блоков. Существуют и такие режимы, в которых используется более сложная структура размещения информации. Данные режимы рассматривать не будем, в виду того, что извлекать вручную из них информацию нецелесообразно. Однако, основываясь на тех принципах, что описаны ниже, можно адаптироваться и к этим режимам. На случай некорректного чтения данных в QR применяются специальные коды, которые способны исправить недочёты при чтении. Это так называемые коды Рида-Соломона . Принцип вычисления кодов, а также исправление ошибок в блоках информации рассматривать не будем, это тема отдельной статьи. Корректирующие ошибки коды Рида-Соломона (RS) записываются после всех информационных данных. Это очень упрощает задачу непосредственного чтения информации: можно просто считать данные, не трогая коды. Как показывает практика, обычно бОльшую часть QR -матрицы занимают корректирующие RS-коды.

По стандарту, данные с RS-кодами перед записью в картинку «перемешиваются». Для этих целей используют специальные маски. Существует 8 алгоритмов, среди которых выбирается наилучший. Критерии выбора основаны на системе штрафов, о которых можно также почитать в спецификации. «Перемешанные» данные записываются в особой последовательности на шаблонную картинку, куда добавляется техническая информация для декодирующих устройств. Исходя из описанного алгоритма, можно выделить схему извлечения данных из QR кода:
Здесь зелёным фломастером подчёркнуты пункты, которые нужно будет реализовать при непосредственном чтении кода. Остальные пункты можно опустить в виду того, что считывание производит человек.

Шаг 0. QR код


Взглянув на картинки, можно заметить несколько отчётливых областей. Эти области используются для детектирования QR кода. Эти данные не представляют интереса с точки зрения записанной информации, но их нужно вычеркнуть или просто запомнить их расположение, чтобы они не мешали. Всё остальное поле кода несёт уже полезную информацию. Её можно разбить на две части: системная информация и данные. Также существует информация о версии кода. От версии кода зависит максимальный объём данных, которые могут быть записаны в код. При повышении версии – добавляются специальные блоки, например как здесь: По ним можно сориентироваться и понять какая версия QR перед вами. Коды высоких версий обычно также нецелесообразно считывать вручную. Размещение системной информации показано на рисунке:
Системная информация дублируется, что позволяет значительно понизить вероятность возникновения ошибок при детектировании кода и считывании. Системная информация – это 15 бит данных, среди которых первые 5 - это полезная информация, а остальные 10 – это BCH (15,5) код, который позволяет исправлять ошибки в системных данных. К классу BCH кодов относят и RS коды. Обратите внимание, что на рисунке две полоски по 15 бит не пересекаются.

Шаг 1. Чтение 5 бит системной информации

\ Как уже говорилось, интерес представляют только первые 5 бит.
Из которых 2 бита показывают уровень коррекции ошибок, а остальные 3 бита показывают какая маска из доступных 8 применяется к данным. В рассматриваемых QR кодах системная информация содержит:

Шаг 2. Маска для системной информации

Кроме уже озвученных схем зашиты системной информации, в добавок, используется статическая маска, которая применяется к любой системной информации.
Она имеет вид: 101010000010010 .
Так как имеет интерес только первые 5 бит, то маску можно сократить и легко запомнить: 10101 (десять-сто один).
После применения операции «исключающего или» (xor) получаем информацию. Возможные уровни коррекции ошибок:
L 01
M 00
Q 11
H 10
Возможные маски:
000 (i + j) mod 2 = 0
001 i mod 2 = 0
010 j mod 3 = 0
011 (i + j) mod 3 = 0
100 ((i div 2) + (j div 3)) mod 2 = 0
101 (i j) mod 2 + (i j) mod 3 = 0
110 ((i j) mod 2 + (i j) mod 3) mod 2 = 0
111 ((i+j) mod 2 + (i j) mod 3) mod 2 = 0

Шаг 3. Чтение заголовка данных

Чтобы понять с какими данными предстоит иметь дело, необходимо изначально прочитать 4-х битный заголовок, который содержит в себе информацию о режиме. Специфика чтения данных изображена на картинке:
Список возможных режимов:

Шаг 4. Применение маски к заголовку

После извлечения 4-х бит, описывающих режим, необходимо к ним применить маску.
В нашем случае для двух кодов используются разные маски. Маска определяется выражением, приведённым в таблице выше. Если данное выражение сводится к TRUE (верное) для бита с координатами (i,j) , то бит инвертируется, иначе всё остаётся без изменений. Начало координат в левом верхнем углу (0,0) . Взглянув на выражения, можно заметить в них закономерности. Для рассматриваемых QR кодов, маски будут выглядеть так: Получим режимы:

Шаг 5. Чтение данных

После получения данных о режиме можно приступать к чтению информации. Надо оговорить, что наиболее интересно считывать числовые и буквенно-числовые данные, так как они легко интерпретируются. Но также не стоит бояться 8-битных. Это может быть также легко интерпретируемая информация. Например, многие онлайн генераторы QR текст кодируют в этом режиме, используя . Ещё одна причина, почему следует изначально прочитать режим это то, что от него зависит количество пакетов данных. Которая также зависит и от версии кода. Для версий с первой по девятую длины блоков для более читабельных режимов: Первый блок после указателя режима – это количество символов. Для числового режима количество закодировано в 10 следующих битах, а для 8-битного режима в 8 битах (прошу прощения за тавтологию).
На рисунке видно, что в левом QR коде, как и отмечалось, записана цифра 5. Это видно по указателю количества символов и последующим после него 4 битам. В числовом режиме наряду с 10-битными блоками используются 4-х битные блоки для экономии места, если в 10-битном объёме нет необходимости. В правом коде, зашифровано 4 символа. На данный момент неизвестно, что зашифровано в нём. Поэтому необходимо перейти к чтению следующего столбца для извлечения всех 4-х блок информации.
На рисунке видно, все 4 пакета представляют собой коды ASCII латинских букв, образующие слово «habr» Естественно наилучшим способом остаётся достать телефон из кармана и, наведя камеру на QR-картинку, считать всю информацию. Однако в экстренных случаях может пригодиться и описанная методика. Конечно, в голове не удержишь все указатели режимов и типов масок, а также ASCII символы, но популярные комбинации запомнить (хотя бы те, что рассмотрены в статье) под силу.

Спецификация:

BS ISO/IEC 18004:2006. Information technology. Automatic identification and data capture techniques. QR Code 2005 bar code symbology specification. London: BSI. 2007. p. 126. ISBN 978-0-580-67368-9. P.S. Соблюдайте правила ресурса и условия Creative Commons Attribution 3.0 Unported (CC BY 3.0)

Как считать QR-код без приложения

Если у вас нет приложения для чтения QR-кода, вы все равно можете расшифровать эти непонятные черно-белые квадраты. И самый простой способ сделать это – использовать специальный сайт.

Как считать QR-код с помощью смартфона

Самым простым способом чтения QR-кодов является использование смартфона, на котором установлено специальное приложение.

  • На Windows Phone даже не нужно загружать дополнительные программы. Такие смартфоны по умолчанию декодируют не только QR-коды, но также EAN и все остальные штрих-коды. Кроме того, Windows Phone умеет сканировать тексты.
  • Чтобы считывать QR-коды с помощью iPhone, нужно установить отдельное приложение. Например, бесплатный сканер QR Code — Barcode Scanner Free.
  • Для Android-смартфонов подойдет QR Code Reader , который можно скачать в Google Play.

Как читать QR-коды на ПК с ОС Windows

Как считывать QR-коды на компьютере или ноутбуке, подробно описано . Здесь для сканирования штрих-кода вам понадобится веб-камера.

Как расшифровать QR-код вручную

Интересно, что QR-код можно расшифровать совсем без сканера. Надо только знать, что такое QR и как он работает: его структуру, функции и отдельные элементы. Подробную информацию о данном методе можно найти в .

Сканировать QR-коды на смартфонах с Android проще чем делать фото. Все что нужно это:

  • Смартфон или планшет с камерой;
  • Интернет.

Я объясню все максимально просто и проведу практическое занятие. Прямо здесь не отходя от статьи. По такой же инструкции можно сканировать и штрих-коды.

“Интерфейс моего смартфона может отличаться от вашего из-за другой темы и версии Android. Отличия не влияют на процесс установки и использования сканера QR-кода”

Для начала нужен сканер QR кодов. Я нашел самый простой. На нем меньше назойливой рекламы и он сканирует - то, что нужно. Установить его - очень просто. Использовать - еще проще.

  1. Для начала заходим в Google Play Market. И пишем в подчеркнутой красным строке: “qr code scanner”, а лучше “smart qr scanner and generator”. Нажимаем на иконку поиска или просто выпавшее предложение, которое нам подходит.


Кроме того у нас вы можете скачать другое отличное приложение для сканирования –

Как сканировать код с сохраненной картинки?

Распознать QR-код с картинки можно и в сети интернет с помощью специальных веб-сайтов. Я выбрал qrrd.ru, потому что это единственный сайт, который у меня загрузился менее чем за 10 секунд и имел более-менее приятный глазу интерфейс.

Как им пользоваться? Сначала заходим на сайт: qrrd.ru или сразу на qrrd.ru/read. Видим следующее:

Зеленым обведено меню сайта, в котором указано все, чем он может вам помочь. В нашем случае выбираем “Распознать QR код”.

Открывается следующая страница с большой кнопкой “+Выберите файлы”. На нее и нажимаем. После этого, снизу появляются варианты как “выбрать файлы”. Тут вы можете или сразу сделать фотографию и отправить. Или же нажать на документы и выбрать фотографию, которая уже есть на телефоне. Я пошел по последнему пути.

Здесь я выбрал вкладку с картинками, нажал на папку где хранятся картинки на моем телефоне и нажал на изображение с QR-кодом, то самое которое уже раньше было здесь в статье.

Дальше уже дело за сайтом. Он автоматически загружает себе фотографию или картинку, а потом сразу распознает и показывает результат.

Готово!.

Зачем мне вообще сканировать QR-коды?

В них может находиться полезная информация. Вероятность этого низка, но она может там быть. К тому же, QR-коды часто используются в музеях, чтобы не ставить огромные таблички с кучей информации, а просто использоваться небольшой QR-код и дать каждому возможность отойти в сторону и почитать о экспонате в своем телефоне. Все просто и удобно. Именно для этого компания Denso Wave их и изобрела.

QR-код - это отличный инструмент для акций. Например, в нем может быть зашифрован код, который нужно показать продавцу, чтобы получить скидку. Применений огромное количество. Пользуйтесь!

В современном мире все большую популярность получает особенный штрих-код, содержащий закодированную информацию. Такой штрих-код получил название QR-код (quick response). Этот матричный, или двумерный код был создан компанией «Denso-Wave» (Япония) в 1994 г. если поднести к такому штрих-коду специальный сканер, то можно будет получить определенную информацию, которая будет выведена на экране компьютера. Например, так кодируются адреса в интернете, название электронной почты, контактные данные и геошифровки, SMS и различные тексты, а также номера телефонов.

Устройства на основе операционной системы Android могут считывать информацию с таких кодов с помощью программ, «QR Droid» и «QR Barcode Scanner».

С помощью наглядного примера можно продемонстрировать способ чтения QR-кода на смартфоне ZTE V880H с системой Android 4.2.1 Jelly Bean с использованием программы «QR Barcode Scanner».

Для чтения QR-кода мобильным устройством нужно выполнить определенный ряд действий:

1) Вначале необходимо скачать на нашем сайте (в данном случае это «QR Barcode Scanner»), установить ее на мобильное устройство и запустить, зайдя в «Меню» и найдя там иконку с соответствующим названием: «QR Barcode Scanner».

2) Открыв пункт с названием программы, можно будет попасть в ее главное меню на английском языке.

3) После нужно нажать на самый первый пункт с названием «Scan Barcode» и навести объектив камеры на сам штрих-код.

4) После этих действий на экране устройства будет доступна информация с данного QR-кода, которую можно будет прочитать на том языке, на котором она и была зашифрована.

Итак, операция по считыванию штрих-кодов довольно проста и необходима в настоящее время, т.к. многие производители стали использовать подобные QR-коды для выдачи дополнительной информации, которая может быть доступна только обладателям специальных устройств, в данном случае, смартфонов на платформе Android.



В конце 90-х годов прошлого столетия Японию захватила волна моды на штрих-коды. Информации,зашифрованной в обычном штрихе перестало хватать — так на свет появился его более продвинутый последователь — двумерный штрих-код или QR-код. Период его расцвета пришёл на 2000-е годы, когда его «лепили» везде где можно и нельзя.
Сейчас, конечно, мода на это значительно спала, но, тем не менее, используют его часто. Но если на телефонах и планшетах со сканированием и распознаванием КюАр кода проблем нет, то с компьютерами и ноутбуками все несколько сложнее.

Есть несколько способов сканировать QR код на компьютере чтобы прочитать его. Я расскажу о каждом из них, а Вы уже выберите тот, который будет удобнее использовать в Вашем случае.

1. QR код-сканер онлайн

Самый простой способ расшифровать QR на компьютере либо ноутбуке, не требующий установки программ, библиотек и т.п. Нужен лишь доступ в Интернет чтобы зайти на сайт decodeit.ru. Этот простой и в то же время функциональный ресурс позволяет делать на ПК все необходимые операции — прочитать и расшифровать КюАр-код, подсунув файл с его изображением.

Здесь Вы так же сможет создать свой двумерный штрих-код. Для этого необходимо всего лишь ввести ссылку или текст в поле «Создать QR код Онлайн» и нажать кнопку «Отправить». На экране появится изображение, которое надо будет сохранить на компьютер и переслать адресату.

2. Программа для чтения QR кодов

Ещё один отличный способ прочитать двумерный штрих-код на компьютере и распознать его — это бесплатная программа CodeTwo QR Code Desktop Reader. Единственное ограничение — она способна прочитать не все коды — есть и те, которые ей не под силу.

Утилита требует установки в систему, после чего автоматически запустится.
Далее надо открыть файл с с QR-кодом или зайти на страничку в Интернете, откуда его надо сканировать. Снова переходим к приложению и нажимаем на кнопку «From screen».Теперь надо мышью выделить КюАр рамкой, после чего отпустить кнопку. Теперь программа сама расшифрует его,прочитает его и выдаст результат.



Просмотров