Распознание кода. Что такое QR-код? Приложения для считывания QR-кода

Думаю, вы не раз встречали на сайтах такие себе «квадратики с узорами». Они называются QR коды и помогают быстро получить нужную информацию или ссылку. Эти коды могут быть весьма полезны для пользователей мобильных устройств.

Перед тем узнать как пользоваться QR кодом на андроид, давайте сначала подробней разберемся что же это такое.

Что такое QR код?

QR (quick response) код — разновидность штрихкода с помощью которого легко можно закодировать и считать какую-либо информацию (текст, ссылку на сайт и т.п.). Основное достоинство QR кода - это легкое распознавание сканирующим оборудованием, в том числе и фотокамерой мобильного телефона.

Как использовать QR код?

Имея на своем смартфона под управлением андроид ОС специальное приложение (например, QR Code Reader или Barcode Scanner) вы можете с легкостью считывать различные QR коды. Для этого запустите приложение, поднесите телефон к картинке с кодом (например, на экране монитора), считанная информация появится на экране телефона. Если закодирована ссылка, то приложение сразу предложит вам перейти по считанной ссылке.

QR код очень помогает при установке приложений на андироид. Нашли интересующее вас приложение на сайте, считали код, перешили по ссылке, скачали и установили приложение. Быстрее и удобней, чем вбивать в поиск Play Маркет название нужного приложения.

Топ 3 программ для считывания QR кодов

Скачать сканер QR кодов для андроид можно c Play Маркет по одной из ссылок ниже.

Нельзя встретить в интернете человека, не слышавшего про QR-коды хотя бы краем уха. С возросшей популярностью сети в последние десятилетия пользователям требовалось передавать данные между собой различными способами. QR-коды как раз и являются «разносчиком» информации, которую зашифровал туда пользователь. Но вопрос стоит в другом — как расшифровать такие коды и получить то, что в них находится?

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

Способ 1: IMGonline

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

Чтобы просканировать интересующее изображение, выполните следующие действия:


Способ 2: Decode it!

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

Чтобы расшифровать QR-код на данном сайте, потребуется выполнить следующее:


Способ 3: Foxtools

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

Для чтения 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- (в том числе и с автоматическим распознаванием URL сайтов), так и обычные шрих-коды с зашифрованными данными о продуктах.

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

Все что для этого требуется это сам мобильный девайс (планшет, смартфон, плеер, в общем, об этом детальнее — на stylus.com.ua), желательно с качественной камерой, и хорошее мобильное приложение для сканирования и чтения QR- и штрих-кодов.

Плюс некоторое умение правильно обращаться с эти весьма полезным в наше время мобильным софтом.

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

Вот о них и расскажем чуть подробнее. Итак

Как читать QR-коды с помощью Android-смартфона (или планшета)

ШАГ 1
Заходим на Google Play и скачиваем бесплатное приложение QR Code Reader . Размер файла примерно 3MB в зависимости от модели смартфона.

ШАГ 2
Устанавливаем и открываем программу. Далее просто наводим объектив основной камеры смартфона на любой QR-код (либо просто открываем через этот ридер готовую фотографию с кодом), все остальное приложение сделает само.

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

Как читать штрих-коды с помощью Android-смартфона (или планшета)

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

ШАГ 1
Качаем (тоже бесплатно и тоже с Google Play) приложение ShopSavvy . Размер его меньше 1 мегабайта

ШАГ 2
Программка попросит вас зарегистрироваться на сайте ShopSavvy. Однако эта процедура не является обязательной. Потому можем потратить пару минут на создание эккаунта, а можем обойтись без этого. Работаем приложение тоже просто. Открываем, жмем кнопку сканера в правом верхнем углу экрана, наводим камеру смартфона на штрих-код и потом читаем полученную информацию.

На этикетках большинства товаров можно встретить пестрые черно-белые квадратики. «Какая-то очередная заумная маркировка» - скажут многие, не обратив на это внимания. Но на деле все намного проще и полезней. Эта картинка носит название QR-код. Что такое QR-код, и как им пользоваться, рассказано в этой статье.

Что представляет собой QR-код?

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

Картинка представляет собой блок зашифрованной текстовой информации. Является двумерной реализацией штрихкода, но в отличие от него, может вместить в себе на несколько порядков больше информации. Всего существует 40 версий QR-кода, каждая из которых отличается размерностью матрицы - от 21 до 177 модулей ширины по стороне, плюс 4 модуля ширины свободного поля вокруг картинки, для повышения четкости отображения на любом фоне.

Кроме обычного полноформатного, можно встретить микро-QR-код. От традиционного рисунка отличается лишь размерностью. Может содержать 11, 13, 15 или 17 модулей ширины, плюс 2 модуля белого поля вокруг кода. Максимальное количество зашифрованных цифр - не более 35. Создать QR-код такого типа можно обычными генераторами. Принципиального отличия в шифровании либо считывании нет.

Преимущества перед другими подобными системами

Основные преимущества QR-кода перед обычным штрихкодом:

  • Увеличенный максимальный объем хранимой информации.
  • Тип данных. Возможность записывать буквы и специальные символы.
  • Упрощена система считывания и скорость процесса.
  • Более практичный размер.

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

Процедура создания

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

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

Системы распознавания и генерирования, структура

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

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

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

Различные уровни коррекции ошибок дают возможность проводить манипуляции с уже готовым изображением с целью, например, стилизации его под определенные потребности. Готовый QR-код можно изменить в цвете или добавить логотип прямо в центр, и он все равно останется рабочим. Это будет полезно, если вы намерены добавить подобный «высокотехнологичный рисунок», скажем, на обложку вашего сайта.

Помощь QR-кода в сфере продаж

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

В технически развитых странах QR-код активно используют для:

  • Совершения моментальных покупок в крупных торговых сетях.
  • Приобретения билетов.
  • Оплаты счета в ресторанах/кафе/отелях и других заведениях.
  • Бесконтактного снятия денег в банкоматах.

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

Другие возможности

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

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

Недостатки технологии

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

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