Как расшифровывается штрих код: Штрих-код товаров — что это такое, его расшифровка и значение, виды, типы уникальных штрихкодов, из чего состоит знак и как формируется, примеры, образцы

Содержание

Расшифровка штрихкода товара для различных стандартов кодирования

11.02.2020

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

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

Что подразумевается под «расшифровкой» штрихкода

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

Расшифровка – это непосредственно процесс считывания штрихового кода сканером и последующее преобразование зашифрованной информации в текст. Главная особенность штрихкода – то, что в небольшом по площади коде может быть зашифрован большой пласт информации. Количество информации, которую можно зашифровать, зависит от вида применяемого штрихкода. Так, различают одномерные (линейные) штрихкоды и двумерные штрихкоды. 

Расшифровка одномерных (линейных) кодов

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

 

Так как линейные штрихкоды – самые первые и самые старые, за почти полвека их применения появилось много новых видов одномерных штрихкодов. Среди самых известных можно выделить: 

  • EAN-13 и EAN-8;
  • UPC;
  • Code 56;
  • Code 128;
  • Codabar.

В мире более сотни различных стандартов кодирования, которые применяются в самых разных областях: торговле, логистике, медицине, образовании и пр. На территории Европы активно используется около 20 стандартов кодирования с помощью одномерных штрихкодов. 

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

Расшифровка двумерных кодов

На смену одномерным штрихкодам постепенно пришли двумерные. Главное их отличие от одномерных не только во внешнем виде, но и в объеме информации, которая может быть в них закодирована. Именно увеличение количества информации, которое требовалось кодировать, послужило причиной появления двумерных штрихкодов.

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

Самые распространенные двумерные виды штрихкодов:

  • QR-код;
  • DataMatrix;
  • Aztec;
  • MaxiCode;
  • PDF417.

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

Коды Data Matrix приобрели широкую известность в российской бизнес-среде после начала эксперимента по маркировке товаров. Код позволяет зашифровать больший объем информации, чем QR-код или линейный штрихкод. При этом код может быть считан обычным сканером, предназначенным для считывания 2D-кодов (подойдет в том числе камера смартфона с установленным приложением). 

Остальные коды выполняют сходную функцию и могут быть считаны специальными сканерами. 

Какие существуют инструменты для расшифровки штрихкода товара

На товар может быть нанесен как двумерный, так и одномерный штрихкод. А в некоторых случаях – сразу несколько. Для расшифровки кодов будет оптимальным решением приобрести устройство, которое может считывать оба типа штрихкодов. Например, 2D-сканер справится как с двумерными, так и с одномерными штрихкодами. Таким образом, если предприниматель уже приобрел сканер для работы с ЕГАИС, то дополнительно покупать новый сканер для работы с маркировкой не требуется. 

Сканеры бывают двух типов:

  • с детектором;
  • без детектора.

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

Также можно разделить сканеры на типы по считывающему элементу: светодиодные, лазерные, имиджевые (имидж-сканеры). Первые в списке – светодиодные – самые простые и требуют непосредственного контакта светодиода сканера и сканируемой поверхности. Такие сканеры применяются в небольших торговых точках. Лазерные сканеры позволяют сканировать коды с большего расстояния, чем светодиодные. Их часто применяют на складах и в логистике. Имидж-сканеры называются так из-за использования технологии «Image» и обладают хорошей дальностью считывания, а также способностью расшифровывать как одномерные, так и двумерные штрихкоды. Есть модели стационарных сканеров и мобильных, а также терминалы сбора данных – мини-компьютеры с интегрированным сканером. 


Штрих-код: расшифровка, виды, структура, применение

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

Вопрос: Можно ли внести в форму товарной накладной N ТОРГ-12 такой дополнительный реквизит, как штрихкод?
Посмотреть ответ

Расшифровка и структура

Тринадцатизначный код EAN разделяется на отдельные структурные зоны:

  • 3 цифры для префикса, означающего код национальной (региональной) организации, в реестрах которой зарегистрирован производитель.
    Будет неправильным отнесение этого 3-значного префикса к коду страны-производителя. Это именно код регистрирующей организации, которая может находиться совсем в другой стране;
  • Как получить код товара и нанести маркировку?

  • от 4 до 6 цифр для номера регистрации производителя или дистрибьютора товара;
  • 3-5 цифр для кода товара. Эти цифры не имеют отношения к характеристикам товара по цвету, весу и т.д. Это – номер товара, под которым он зарегистрирован в базе данных продавца, в которой, в свою очередь, под порядковым номером со штрих-кода зарегистрированы наименование товара, его вес и цена;
  • от 1 до 2 цифр – внутренний код изготовителя, отражающий некие производственные процессы;
  • одна цифра для контрольного числа, необходимого для запуска считывания сканером;
  • опциональное поле со знаком «>», означающим «свободную зону».

Сравнение технологий обычного штрихкодирования и радиочастотных RFID-меток

Расчёт контрольной цифры в штрих-коде

Воспользуйтесь приведённым ниже алгоритмом:

  1. Сложите цифры, находящиеся на четных местах: 2+4+6+8+0+2=22
  2. Полученную сумму умножьте на 3: 22*3=66
  3. Сложите цифры, находящиеся на нечетных местах (кроме последней, контрольной): 1+3+5+7+9+1=26
  4. Сложите числа, полученные в п. 2 и п.3: 66+26=92
  5. Отбросьте десятки: 92-90=2
  6. Из 10 вычтите полученное в п.5: 10-2=8

Полученная цифра и есть контрольная. Если не совпала — товар может быть произведён незаконно.

Штрих-коды стран производителей

Код производителя Страна Национальная организация EAN/UCC
00-13 США и Канада UCC (U.S.A. & Canada)
30-37 Франция GENCOD-EAN France
380 Болгария BCCI (Bulgaria)
383 Словения EAN Slovenia
385 Хорватия EAN Croatia
387 Босния и Герцеговина EAN-BIH (Bosnia-Herzegovina)
400-440 Германия CCG (Germany)
45-49 Япония Distribution Code Center — DCC (Japan)
460-469 Россия UNISCAN / EAN RUSSIA (Russian Federation)
471 Тайвань EAN Taiwan
474 Эстония EAN Eesti (Estonia)
475 Латвия EAN Latvia
476 Азербайджан EAN Azerbaijan
477 Литва EAN Lithuania
478 Узбекистан EAN Uzbekistan
479 Шри-Ланка EAN Sri Lanka
480 Филиппины PANC (Philippines)
481 Беларусь EAN Belarus
482 Украина EAN Ukraine
484 Молдова EAN Moldova
485 Армения EAN Armenia
486 Грузия EAN Georgia
487 Казахстан EAN Kazakhstan
489 Гонконг HKANA (Hong Kong)
50 Великобритания E Centre UK
520 Греция HELLCAN — EAN HELLAS (Greece)
528 Ливан EAN Lebanon
529 Кипр EAN Cyprus
531 Македония EAN-MAC (FYR Macedonia)
535 Мальта EAN Malta
539 Ирландия EAN Ireland
54 Бельгия, Люксембург ICODIF/EAN Belgium. Luxembourg
560 Португалия CODIPOR (Portugal)
569 Исландия EAN Iceland
57 Дания EAN Danmark
590 Польша EAN Poland
594 Румыния EAN Romania
599 Венгрия EAN Hungary
600-601 Южная Африка EAN South Africa
609 Маврикий EAN Mauritius
611 Марокко EAN Maroc (Marocco)
613 Алжир EAN Algeria
616 Кения EAN Kenya
619 Тунис TUNICODE (Tunisia)
621 Сирия EAN Syria
622 Египет EAN Egypt
624 Ливия EAN Libya
625 Иордания EAN Jordan
626 Иран EAN Iran
627 Кувейт EAN Kuwait
628 Саудовская Аравия EAN Saudi Arabia
629 Объединенные Арабские Эмираты EAN Emirates
64 Финляндия EAN Finland
690-693 Китай Article Numbering Centre of China — ANCC (China)
70 Норвегия EAN Norge (Norway)
729 Израиль Israeli Bar Code Association — EAN Israel
73 Швеция EAN Sweden
740 Гватемала EAN Guatemala
741 Сальвадор EAN El Salvador
742 Гондурас EAN Honduras
743 Никарагуа EAN Nikaragua
744 Коста-Рика EAN Costa Rica
745 Панама EAN Panama
746 Доминиканская Республика EAN Republica Dominicana
750 Мексика AMECE (Mexico)
759 Венесуэла EAN Venezuela
76 Швейцария EAN (Schweiz, Suisse, Svizzera)
770 Колумбия IAC (Colombia)
773 Уругвай EAN Uruguay
775 Перу EAN Peru
777 Боливия EAN Bolivia
779 Аргентина CODIGO — EAN Argentina
780 Чили EAN Chile
784 Парагвай EAN Paraguay
786 Эквадор ECOP (Ecuador)
789 Бразилия EAN Brazil
80-83 Италия INDICOD (Italy)
84 Испания AECOC (Spain)
850 Куба Camera de Comercio de la Republica de Cuba (Cuba)
858 Словакия EAN Slovakia
859 Чехия EAN Czech
860 Югославия EAN YU (Yugoslavia)
867 Северная Корея EAN DPR Korea (North Korea)
869 Турция Union of Chambers of Commerce of Turkey (Turkey)
87 Нидерланды EAN Nederland (Netherlands)
880 Южная Корея EAN Korea (South Korea)
885 Таиланд EAN Thailand
888 Сингапур SANC (Singapore)
890 Индия EAN India
893 Вьетнам EAN Vietnam
899 Индонезия EAN Indonesia
90-91 Австрия EAN Austria
93 Австралия EAN Australia
94 Новая Зеландия EAN New Zealand
955 Малайзия Malaysian Article Numbering Council (MANC)
958 Макао EAN Macau

Назначение штрих-кода

Введение в действие штрихового кода имело место в 1974 году, хоть патент на его изобретение был выдан в 1962 году.

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

В настоящее время штриховой код имеет и иные функции, а именно:

  • функцию идентификации товара при помощи сканеров;
  • функцию учета и контроля товаров на складах;
  • логистическую функцию – транспортировку, разгрузку, погрузку и т.д.;
  • функцию оптимизации обслуживания;
  • статистическую функцию, необходимую для исследований в сфере маркетинга.

Местом нанесения штрихового кода является упаковка товара, а способом его нанесения – приклеивание ярлыков с нанесенными на них печатными штрих-кодами.

Виды штрих-кодов

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

Линейный код читается по горизонтали, то есть в одном направлении. К линейным штрих-кодам относятся следующие подвиды, различающиеся, в том числе, и по количеству включаемых в код символов. Например, код EAN имеет два варианта – восьмизначный и тринадцатизначный. Логично предположить, что 13-значный код включает в себя больший объем информации о товаре.

Однако по сравнению с двумерными кодами все линейные штриховые коды обладают относительно малой информативной емкостью.

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

Дополнительно двумерные штриховые коды дифференцируются на:

  • коды с несколькими уровнями (stacked), представляющие собой совокупность линейных кодов, расположенных друг над другом;
  • матричные, то есть представляющие собой плотное размещение информации по вертикали.

Современные двумерные штриховые коды могут вмещать в себя, в зависимости от количества слоев, от 7 до 1900 байт информации о товаре.

Применение в штрих-кодов в РФ

В Российской Федерации наиболее распространенным видом штриховых кодов являются линейный 13-значный и линейный 8-значный.

Предполагается, что в ближайшее время в РФ будет введен в действие расширенный штриховой код, в который будет вноситься информация о дополнительных характеристиках товара. Например:

  • при нанесении штрих-кода на мясную продукцию будет дополнительно вводиться информация о дате забоя и о способе выращивания скота у производителя;
  • при нанесении штрих-кода на рыбную продукцию предполагается вводить информацию о количестве улова и о способе раздела тушек рыбы.

Считывание

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

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

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

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

Что касается EAN-8:
По сути это младший собрат EAN-13, был введён для малоразмерных упаковок, для таких, где нет достаточно места для нанесения символики EAN-13.

2.2.2.9. Штриховой код для малоразмерных упаковок – GS1 Russia

Предметы торговли фиксированных измерений, сканируемые на POS-терминалах в розничной торговле, могут использовать номер GTIN-8. GTIN-8 доступен для идентификации предметов торговли, чья упаковка не имеет достаточно места для размещения символики EAN-13. Так как этот код состоит не из 13, а всего лишь из 8 знаков, то и размеры символа штрихового кода EAN-8 меньше, чем у EAN-13.

Номера GTIN-8 присваиваются индивидуально предметам торговли, выпускаемым членами Ассоциации ГС1 РУС, по запросу. Предприятие-член Ассоциации ГС1 РУС не может самостоятельно сформировать код GTIN-8 на свою продукцию. Оно может получить его только в Ассоциации.

GS1-8 Префикс – уникальный номер, присвоенный Национальной Организации GS1 (ГС1 РУС). Для РФ это – 46. Ссылочный номер предмета торговли присваивается Национальной Организацией GS1 (ГС1 РУС) по специальному запросу от члена Ассоциации. Контрольная цифра служит для проверки правильности построения номера штрихового кода. В качестве носителя номера GTIN-8 используется символика EAN-8

46 00001
00002
00003 и т.д.
C

ПРЕФИКС Национальной организации – ГС1 РУС.

ПРОДУКЦИЯ ПРЕДПРИЯТИЙ-ЧЛЕНОВ ГС1 РУС: Каждому отдельному виду продукции, независимо от кода предприятия, соответствует отдельный порядковый номер. Номера продукции различных предприятий идут вперемешку. Найти внутри номера GTIN-8 регистрационный номер предприятия нельзя.

8-Й КОНТРОЛЬНОЕ ЧИСЛО: Вычисляется из значений предыдущих 7 разрядов автоматически при формировании очередного номера GTIN-8.

Так как внутри EAN-8 отсутствует регистрационный номер предприятия, то в общем перечне присвоенных товарных номеров соседствует продукция самых разнообразных предприятий, например:

46000019 Термометр медицинский ТМ-2, НИИ автоаппаратуры г. Москва
46000026 Карамель на палочке “Дюймовочка”, ООО “Заря” г. Тверь
46000033 Патроны для пневматического оружия, 50 шт, ПО “Ижмаш”
и т. д.

Из таблицы видно, что запас возможных номеров GTIN-8 очень невелик. Так как в номере GTIN-8 непосредственно для кодировки товара используются всего 5 разрядов, то закодировать можно от 00000 до 99999 образцов продукции. Понятно, что 100 тысяч номеров GTIN-8 на всех никогда не хватит.

Для того, чтобы номера GTIN -8 доставались тем, кому они действительно необходимы, в Ассоциации ГС1 РУС действует следующий порядок: предприятие вместе с заявлением о выдаче номера GTIN -8 представляет образец упаковки (этикетки) своей продукции.

Прежде чем принять решение о применении GTIN-8, пользователю следует рассмотреть (как правило, вместе с поставщиком типографских услуг) все возможные варианты применения формата GTIN-13. Варианты могут быть следующими:

  • Символ может быть уменьшен в размере, т.е. напечатан с меньшим увеличением, с учетом минимальных требований к качеству печати штрих-кода.
  • Дизайн упаковки или этикетки может быть приемлемо изменен, чтобы соответствовать рекомендуемому размеру стандартного символа EAN/UPC.
  • Может быть использован усеченный символ. Усечение символа (использование символа обычной длины, но сокращенной высоты) допускается, только если нет совершенно никакой возможности печати символа в полном размере.

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

Номер GTIN-8 выдается только в том случае, если символ штрихового кода EAN-13 номинального размера (25,93 х 37,29 мм) занимает больше 25% печатной поверхности упаковки или этикетки. Или:

  • общая область печати на упаковке продукта меньше 80 кв. см
  • площадь самой большой этикетки товара меньше 40 кв. см
  • продукт имеет цилиндрическую форму, и его диаметр меньше 30 мм.

Номер GTIN-8 на упаковках ограниченного размера

Пример символики EAN-8

Миним. размер Х: 0,264 мм (0,0104 дюйма)

Maксим. размер Х: 0,660 мм (0,0260 дюйма)

Целевой размер Х: 0,330 мм (0,0130 дюйма)

Примечание: размер Х ― это установленная ширина самого узкого элемента в символике штрих-кода. Эта ширина варьируется от одной символики к другой.

Требования к символу определяются ГОСТ ИСО/МЭК 15420-2010 «Автоматическая идентификация. КОДИРОВАНИЕ ШТРИХОВОЕ. Спецификация символики штрихового кода EAN/UPC».

Вместе с тем, специально для решения проблемы идентификации малоразмерных объектов, в настоящее время в GS1 используется символика GS1 DataBar.


2.2.2.6. Штриховой код на единичной и групповой упаковках – GS1 Russia

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

Существует множество символик – способов изображения товарного номера и другой информации в виде штрих кода. В качестве наиболее известных можно назвать EAN/UPC, Код 39, 2 из 5 чередующийся (Interleaved 2 of 5 – ITF), Кодабар, Код 128, Код 93, RSS, Composite, Код 49, PDF-417, QR-код, Микро-PDF и т.д. и т.п.

В соответствии с правилами GS1 на упаковку товара номер EAN/UCC-13 наносится в виде символа штрихового кода EAN/UPC. Эта символика (правила построения графического изображения) утверждена как международным стандартом ISO 15420, так и межгосударственным (СНГ) стандартом ГОСТ ИСО / МЭК 15420-2001 “Автоматическая идентификация. Кодирование штриховое. Спецификация символики EAN/UPC (ЕАН/ЮПиСи)”.

Различаются единичная и групповая упаковки товара

Под единичной упаковкой понимают отдельную единицу товара (англ. Trade Item), которая проходит через кассу (например, пачка сигарет, жестяная банка напитка “Буратино”).

Под групповой упаковкой понимают объединение в единой таре группы единичных упаковок для продажи через кассу (например, блок сигарет, упаковка из 6 банок “Буратино”).

Единичная и групповая упаковки одноименного товара должны иметь различные номера EAN-13 (стоимость одной банки напитка и блока из 6 банок различная):

ЕДИНИЧНАЯ УПАКОВКА ГРУППОВАЯ УПАКОВКА
“Буратино”, жестяная банка 0,33л
1 штука
“Буратино”, жестяная банка 0,33л
6 штук в пленке
EAN-13 4607009520087 EAN-13 4607009520094

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

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

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

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

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


Что такое QR-код и каким образом его расшифровать?. Новости. Первый канал

Неброские квадратики с примитивным чёрно-белым узором всё чаще попадаются нам на глаза в самых разных местах: на упаковках товаров, в газетах, журналах, на «платёжках» и билетах. Знающие люди говорят, что это нечто вроде штрихкода, но возможности его куда шире.

Это раньше он был обычным рекламным щитом c пестрыми рисунками и броскими надписями. Сегодня нет ни обилия форм, ни палитры. Только квадраты и только черные или белые. Как двигает торговлю эта абракадабра не ясно, но умы прохожих уж точно будоражит.

Действительно код. Только не штрих, а QR (от английского quick response — быстрый отклик). Быстрый поскольку расшифровать его можно за секунду. Достаточно взять в руки мобильный телефон, в котором установлено специальное приложение. «Потом, в зависимости от того, что там закодировано, нажатием одной кнопки подтвердить либо переход по ссылке, либо добавление в адресную книгу либо СМС, может быть, просто текст», — рассказывает создатель сайта Александр Летуновский.

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

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

«Человек может получать интересующую информацию не отходя от объекта. Его что-то заинтересовало, он находится на странице, которая принадлежит этой витрине и читает все, что ему интересно», — поясняет старший научный сотрудник Дарвиновского музея Роман Савин.

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

«Можно узнать об этом здании всю информацию: когда оно построено, посмотреть фотографии», — рассказывает житель Челябинска Матвей Минибаев.

Что там дом с QR-кодом, когда может быть дом-QR-код. Здание такой формы возводят в Дубае. 6 миллионов квадратных метров. И каждый из них расскажет прохожим что-то свое. После такого уже не вызывают удивления коды на могилах усопших в Японии или татуировки из квадратов.

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

Как расшифровать штрих-код и избежать подделки?

21 июня 2012

Что такое штрих-код — знают все, а вот как он расшифровывается — единицы. А зря, ведь такое знание поможет вам избежать покупки фальсификата.

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

Первые три цифры — это префикс национальной организации GS1, следующие 4-6 цифр — уникальный идентификатор предприятия, на которое зарегистрирован этот товар, остальные цифры это код товара, контрольное число и, возможно, еще один дополнительный символ.

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

Проверка штрих-кода. Проверить штрих-код и получить информацию о товаре можно на сайте gepir. gs1.org. Если указать товарный номер, система поищет его в глобальном реестре GEPIR (Global Electronic Party Information Registry) и покажет данные о владельце товарного кода и ссылку на национальную организацию GS1, в которой код был зарегистрирован.

Если товар не найден в каталоге, это, скорее всего, означает, что производитель посчитал не обязательным получать коды своих товаров в Международной организации GS1 и сформировал их самостоятельно. Какой смысл он вложил в эти обозначения — известно только ему самому и тому, с кем он этой информацией поделится.

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

Чтобы проверить подлинность штрих-кода:

1. Сложим числа, стоящие на четных местах.

2. Полученную сумму необходимо умножить на 3.

3. То, что у нас получилось, сложим с суммой всех чисел, стоящих на нечетных местах. Кроме последней!

4. У полученного числа убираем десятки. Например, число 62: убираем 6 и получается 2.

5. От 10 отнимаем наше полученное число. Например: 10-2=8. Теперь сравниваем последнюю цифру кода с полученной. Если они равны, значит штрих-код настоящий. А если не равны, то у вас или плохо с математикой, или штрих-код поддельный.



 

Для чего нужен на товаре штриховой код EAN. Как просто расшифровать штрих-код! Полезная информация! Распечатала и ношу с собой! Такое обязательно пригодится! Коды стран местонахождения баз данных о штрихкоде

Штрих-код EAN-13 является самым распространенным среди линейных символик. С помощью этой системы знаков можно закодировать только 12 цифр. При использовании EAN-13 запрещено кодирование букв и спецсимволов.

Последняя 13 цифра является контрольным символом и рассчитывается автоматически исходя из первых 12 цифр, введенных пользователем.

Линейные символики позволяют кодировать небольшой объем информации (до 20-30 символов — обычно цифр) с помощью несложных штрих-кодов, читаемых недорогими сканерами.

Какие цифры кодируются для дисконтных карт?

Первые три цифры в штрих-коде EAN-13 обозначают региональный код разных стран. Например, 460 – 469 — это Россия.

Для пластиковых карт зарезервирован специализированный диапазон с 200 по 299, не присвоенный ни одной стране.

Если отклониться от данного диапазона, то при использовании карт может произойти случайное пересечение с товаром.

Внешний вид штрих-кода EAN-13

На рисунке, расположенном ниже, размещен пример штрих-кода с номером 2150000000017, где 7 — контрольная цифра.

Как рассчитывается контрольный символ?

Штрих-код EAN-13 является линейным. Значение цифр, закодированных в полосках продублировано в нижней части штрихового кода (13 знаков с учетом контрольного символа).

Для примера рассмотрим расчет контрольной суммы для штрих-кода под номером 215000000001Х, где Х — контрольная сумма.

Как уже упоминалось выше, в данном коде используется 12 цифр. Последний, 13 знак, является контрольным. Проведем расчет 13 знака:

  • Сначала сложим все цифры, стоящие на четных местах: 1+0+0+0+0+0+1=2
  • Полученную сумму умножим на три: 2х3=6
  • Далее сложим цифры, стоящие на нечетных местах:2+5+0+0+0+0=7
  • Затем сложим полученные цифры в пункта 2 и 3: 6+7=13
  • Отбрасываем десятки, получим 3
  • Наконец, из 10 вычитаем число из п.5 и получаем контрольную сумму: 10-3=7

Штрих-код производителя — это последовательность черных и белых полос, представляющая некоторую информацию в виде, удобном для считывания техническими средствами. Информация, содержащаяся в коде может быть напечатана в читаемом виде под кодом (расшифровка). Штриховые коды используются в торговле, складском учете, библиотечном деле, охранных системах, почтовом деле, сборочном производстве, обработка документов. В мировой практике торговли принято использование штрихкодов символики EAN для маркировки товаров. В соответствии с принятым порядком, производитель товара наносит на него штриховой код, формируемый с использованием данных о стране местонахождения производителя и кода производителя. Код производителя присваивается региональным отделением международной организации EAN International. Такой порядок регистрации позволяет исключить возможность появления двух различных товаров с одинаковыми кодами.

Существуют различные способы кодирования информации, называемые (штрихкодовыми кодировками или символиками). Различают линейные и двухмерные символики штрихкодов.

Линейными (обычными) в отличие от двухмерных называются штрихкоды, читаемые в одном направлении (по горизонтали). Наиболее распространненые линейные символики: EAN, UPC, Code39, Code128, Codabar, Interleaved 2 of 5. Линейные символики позоволяют кодировать небольшой объем информации (до 20-30 символов — обычно цифр) с помощью несложных штрихкодов, читаемых недорогими сканерами. Пример кода символики EAN-13:

Двухмерными называются символики, разработанные для кодирования большого объема информации (до нескольких страниц текста). Двухмерный штрих-код считывается при помощи специального сканера двухмерных кодов и позволяет быстро и безошибочно вводить большой объем информации. Расшифровка такого кода проводится в двух измерениях (по горизонтали и по вертикали). Datamatrix, Data Glyph, Aztec.

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

Расшифровка штрих-кода производителя

C помощью штрихового кода зашифрована информация о некоторых наиболее существенных параметрах продукции. Наиболее распространены американский универсальный товарный штрих-код UPC и Европейская система кодирования EAN. Наиболее распространенны EAN/UCC товарные номера EAN-13, EAN-8, UPC-A, UPC-E и 14-разрядный код транспортной упаковки ITF-14. Так же существует 128 разрядная система UCC/EAN-128. Согласно той или иной системе, каждому виду изделия присваивается свой номер, состоящий чаще всего из 13 цифр (EAN-13).

Возьмем, к примеру, цифровой код: 4820024700016. Первые две цифры (482) означают страну происхождения (изготовителя или продавца) продукта, следующие 4 или 5 в зависимости от длинны кода страны (0024) — предприятие-изготовитель, еще пять (70001) — наименование товара, его потребительские свойства, размеры, массу, цвет. Последняя цифра (6) контрольная, используемая для проверки правильности считывания штрихов сканером.

Штрих-код EAN-13

Для «кода товара»:

1. цифра: наименование товара,

2. цифра: потребительские свойства,

3. цифра: размеры, масса,

4. цифра: ингредиенты,

5. цифра: цвет.

Пример вычисления контрольной цифры для определения подлинности товара

1. Сложить цифры, стоящие на четных местах: 8+0+2+7+0+1=18

2. Полученную сумму умножить на 3: 18×3=54

3. Сложить цифры, стоящие на нечетных местах, без контрольной цифры: 4+2+0+4+0+0=10

4. Сложить числа, указанные в пунктах 2 и 3: 54+10=64

5. Отбросить десятки: получим 4

6. Из 10 вычесть полученное в пункте 5: 10-4=6

Если полученная после расчета цифра не совпадает с контрольной цифрой в штрих-коде, это значит, что товар произведен незаконно.

Таблица соответствия штрих-кода производителя стран мира

Штрих-код производителя

Организация EAN

США и Канада

UCC (U.S.A. & Canada)

Внутренний штрих-код предприятия

GENCOD-EAN France

Болгария

Словения

Хорватия

Босния и Герцеговина

EAN-BIH (Bosnia-Herzegovina)

Германия

Distribution Code Center — DCC (Japan)

UNISCAN / EAN RUSSIA (Russian Federation)

EAN Eesti (Estonia)

Азербайджан

Узбекистан

Шри-Ланка

Филиппины

PANC (Philippines)

Беларусь

Казахстан

HKANA (Hong Kong)

Великобритания

HELLCAN — EAN HELLAS (Greece)

Македония

EAN-MAC (FYR Macedonia)

Ирландия

Бельгия, Люксембург

ICODIF/EAN Belgium. Luxembourg

Португалия

CODIPOR (Portugal)

Исландия

Южная Африка

EAN South Africa

Маврикий

EAN Maroc (Marocco)

TUNICODE (Tunisia)

Иордания

Саудовская Аравия

EAN Saudi Arabia

Объединенные Арабские Эмираты

Финляндия

Article Numbering Centre of China — ANCC (China)

Норвегия

EAN Norge (Norway)

Israeli Bar Code Association — EAN Israel

Гватемала

Сальвадор

Гондурас

Никарагуа

Коста-Рика

Доминиканская Республика

EAN Republica Dominicana

Венесуэла

Швейцария

EAN (Schweiz, Suisse, Svizzera)

Колумбия

Аргентина

CODIGO — EAN Argentina

Парагвай

Бразилия

Camera de Comercio de la Republica de Cuba (Cuba)

Словакия

Югославия

EAN YU (Yugoslavia)

Северная Корея

EAN DPR Korea (North Korea)

Union of Chambers of Commerce of Turkey (Turkey)

Нидерланды

EAN Nederland (Netherlands)

Южная Корея

EAN Korea (South Korea)

Сингапур

SANC (Singapore)

Индонезия

Австралия

Новая Зеландия

Малайзия

Malaysian Article Numbering Council (MANC).

960-969

Великобритания (для EAN-8)

Периодические издания ISSN

Книжные издания ISBN

Музыкальные издания ISMN

Возвратные квитанции

Валютные купоны

ИСХОДНЫЕ МАТЕРИАЛЫ:
1) Иеромонах Лука, монах Продром, насельники афонского монастыря Григориат. «Штриховой код и число 666». Исследование третье (23.6.1997). Обитель преподобного Григория. 23 июня 1997 года. Использованы приведенные в работе описания штрих-кода EAN-13 и описания способов его обработки сканерами.
2) Устные высказывания двух независимых инженеров-программистов, работавших в разное время со сканерами штрих-кодов, о способе представления и передачи кодов от сканера к компьютеру.

ТЕРМИНОЛОГИЯ:
Код — штрих-код EAN-13.
Штрих-символ — 2 штриха различной (в общем случае) толщины, посредством которых графически представляется любая цифра в коде.
Ограждающие штрихи — (Guard Bars, Guard Patterns) — выступающие штриховые символы в начале, середине и конце этикеток кода.
LGP — Left Guard Pattern — левый ограждающий штрих.
CGP — Center Guard Pattern — центральный ограждающий штрих.
RGP — Right Guard Pattern — правый ограждающий штрих.
Сканер — устройство для считывания штрих-кода с этикеток и передачи его в компьютер (кассовый аппарат или банкомат).

РЕЗУЛЬТАТЫ ИССЛЕДОВАНИЙ:
Основная предпосылка к соображению о наличии закодированного числа 666 в штрих-коде EAN-13 (далее: код) — наличие визуального сходства изображения числа 6 и изображений ограждающих штрихов этого кода. Для проверки этого сходства было произведено теоретическое сравнение графического и внутреннего представления, а также способов обработки сканером числа 6 и ограждающих штрихов кода.

1. Графическое представление в штрих-коде EAN-13.

1.1 Размеры изображений числа 6 и ограждающих штрихов.

Чтобы представить графически (в виде штрихов) любое число в коде, в том числе 6, используеся штрих-символ — вертикальная полоска, состоящая, в свою очередь, из 7 более мелких полосок, так называемых модулей, каждый из которых может быть черным или белым. Для представления ограждающих штрихов применяются полоски из меньшего (и различного) числа модулей:
для LGP и RGP — полоски из 3 модулей,
для CGP — полоска из 5 модулей.

На следующем рисунке изображена этикетка кода с пояснениями по количеству используемых модулей:

1.2 Изображение числа 6 и ограждающих штрихов.

Для представления любого числа в коде используется 3 множества штрих-символов: Set A, Set B, Set C, т.е. каждое число на этикетке кода представляется одним из 3-х возможых вариантов. Для изображения числа в Правой части этикетки всегда используется Set C. В Левой части используется Set A или Set B в соответствие с Таблицей 1 в зависимости от первого числа штрих-кода N, находящегося на этикетке слева от LGP.



Таблица 1. Множества, используемые в Левой части этикетки и процентное соотношение чисел кода, представляемых множествами Set A и Set B.
Левая часть этикетки кода И Т О Г О
Значение
числа N
1-я цифра 2-я цифра 3-я цифра 4-я цифра 5-я цифра 6-я цифра Кол-во
Set A
Кол-во
Set B
0 A A A A A A 6 0
1 A A B A B B 3 3
2 A A B B A B 3 3
3 A A B B B A 3 3
4 A B A A B B 3 3
5 A B B A A B 3 3
6 A B B B A A 3 3
7 A B A B A B 3 3
8 A B A B B A 3 3
9 A B B A B A 3 3
И Т О Г О 33 27
Процентное соотношение (50% занимает Set C) 27,5 22,5

Число N для каждой цифры из Левой части этикетки определяет символом какого множества (Set A или Set B) будет представлена эта цифра. Например, если в крайней левой позиции этикетки (т.е. слева от LGP) стоит 2 (N=2), то 1-я и 2-я цифры представлены штрих-символами Set A, 3-я и 4-я — Set B, 5-я — Set A, 6-я — Set B.

Таким образом, после подсчёта всех вариантов представления любой цифры, в т.ч. и 6, из таблицы становится понятно: если взять все возможные сочетания цифр на этикетке кода (т.е. все возможные варианты этикеток), то 27,5% всех «шестёрок» будут представлены штрих-символами из множества Set A, 22,5% — Set B и 50% — Set C.

Число 6 во множествах Set A,B и C и ограждающие штрихи изображаются следующими способами:


Рис 3. Графическое представление числа 6 в Set A, Set B, Set C
и ограждающих штрихов кода EAN-13.

Из рисунка ясно видно, что изображения ограждающих штрихов совпадают визуально с изображениями числа 6 только в Set B и Set C, что составляет 50%+22,5%=72,5 %, в остальных 27,5% (Set A) эти изображения визуально не совпадают.

2. Внутреннее представление в сканере.

Любой штрих-символ этикетки кода преобразуется сканером в двоичную последовательность нулей и единиц (0 и 1), в которой каждому чёрному модулю соответстует 1, белому — 0. В соответствие с рис.3 двоичные представления изображений следующие:

6(Set A) — 0101111;
6(Set B) — 0000101;
6(Set C) — 1010000;
LGP, RGP — 101;
CGP — 01010;.

Эти последовательности нельзя рассматривать как двоичные числа, а лишь как двоичные изображения (картинки из 0-ей и 1-ц). B процессоре и памяти сканера эти изображения представляются в 8-разрядном двоичном виде путём дополнения слева нулями до 8 разрядов. Таким образом, получаем:

6(Set A) — 00101111; 6(Set B) — 00000101; 6(Set C) — 01010000; LGP, RGP — 00000101; CGP — 00001010;.

Ясно, что совпадают только внутренние представления изображения LGP/RGP с внутренним представлением изображения числа 6(Set B), что составляет 22,5% от всех возможных шестёрок в коде (см. ). Внутренние представления LGP/RGP не совпадают с внутренним представлением CGP, а внутреннее представление CGP не совпадает с какими-либо 6-ми.

К сожалению, в ИСХОДНЫХ МАТЕРИАЛАХ нет явного описания 8-разрядного представления числа 6(Set C) — 01010000 2 , это представление выведено на основе общих правил представления информации в процессоре и памяти. Поэтому оно может оказаться неверным, если именно для числа 6(Set C) в конструкции сканера сделано какое-либо исключение, что представляется практически невероятным. Во всяком случае, это представление легко проверить по каким-либо другим источникам.

3. Алгоритм обработки и распознавания символа сканером.

В ИСХОДНЫХ МАТЕРИАЛАХ подробно описан алгоритм Техника «расстояния ширины» (width distance), который выдает одинаковое для числа 6(Set B,C) и для LGP/RGP соотношение 3:2:1. Теоретическое применение данного алгоритма для распознавания CGP позволяет сдалать вывод:
для CGP возможно получение соотношения 4:3:2:1, которое отличается от 3:2:1 для LGP/RGP и даёт при расшифровке согласно описанию этого алгоритма (в двоичном виде):

00001111
-00000111
+00000011
-00000001
———
00001010 2 — это как раз внутреннее представление CGP, что и подтверждает правильность соотношения 4:3:2:1.

4. Момент идентификации штрихового символа именно как числа 6.

Сканер передаёт результаты своей работы компьютеру, к которому подключается по клавиатурному входу вместе с клавиатурой (см. рис.4) в точке (*). Такое подключение делается для обеспечения возможности вводить код с этикетки вручную, просто набирая цифры кода на клавиатуре. Клавиатура передаёт в компьютер порядковые номера нажатых клавиш. Поскольку сканер и клавиатура подключены к компьютеру в общей точке (*), сканер «вынужден» также передавать в компьютер порядковые номера клавиш, которые надо было бы нажать на клавиатуре, чтобы получить на экране последовательность чисел с этикетки штрих-кода.


Рис 4. Путь информации от штрих-символа цифры 6 (Set A)
до двоичного представления 6 в компьютере.

Движение информации происходит следующим образом (на рис.4 оно показано на примере штрих-символа цифры 6(Set A)). Любой штрих-символ этикетки кода преобразуется сканером в двоичную последовательность нулей и единиц (0 и 1), в которой каждому чёрному модулю соответстует 1, белому — 0 (см. ). Затем для всех двоичных последовательностей, соответсвующих цифрам кода, определяются порядковые номера клавиш, которые необходимо было бы нажать для получения этих цифр (для цифры 6 — клавиша № 77), и передаются в компьютер. Таким образом, ограждающие штрихи в компьютер не передаются, они там не нужны по двум причинам:

1) Ограждающие штрихи выполняют свою служебную функцию выделения правой и левой части этикетки кода лишь на этапе получения в сканере двоичных последовательностей, и далее не нужны.

2) При ручном вводе штрих-кода на клавиатуре набираются только цифры кода, и, соответственно, передаются в компьютер порядковые номера нажатых цифровых (0-9) клавиш без всяких ограждающих штрихов. Поскольку сканер подключен к клавиатурному входу, он «вынужден» передавать также порядковые номера только цифровых клавиш.

И только внутри компьютера происходит преобразование № клавиши в цифру.
В нашем примере по № клавиши 77 компьютер определяет, что введена была цифра 6.

Таким образом, в сканере отсутствует числовое представление числа 6 (двоичное число 00000110), а присутствует только представление изображения числа 6 (см. настоящей Справки). Числовое представление числа 6 появляется только в компьютере, где ограждающие штрихи в каком-либо виде вообще отсутствуют.


5. О сходстве штрихового изображения числа 6 и ограждающих штрихов.

Данный пункт является вследствие недостатка информации предположением, основанным скорее даже не на логике, а на здравом смысле.

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

Эта пригодность выражается в том, что для настройки сканера на считывание удобно получить следующую единичную серию импульсов от изображения:
— единичный чёрный импульс;
— единичный белый импульс;
— единичный чёрный импульс,
которая будет использоваться как эталон длительности импульсов при последующем считывании.

5.2 Использование 2-х штрихов единичной ширины с единичным белым промежутком для изображения числа 6(Set B,C).

Изображения числа 6(Set B,C) получаются путём инвертирования (каждый чёрный модуль переходит в белый и наоборот) и последующего зеркального отображения исходного изображения числа 6(Set A). Вероятно, сначала было разработано изображения числа 6(Set A), а уже из него автоматически получились изображения числа 6(Set B) и 6(Set C), которые и соответствуют двум тонким полосам. К сожалению, пока не удалось найти информацию о том, насколько необходимо было изначальное изображение числа 6(Set A) именно в таком виде.


ВЫВОДЫ:

Чтобы было возможно сделать вывод о том, что с математической точки зрения ограждающие штрихи представляют собой три шестерки (666), необходимо выполнение 2-х условий:

  1. Все три ограждающих штриха должны совпадать между собой.
  2. Изображения ограждающих штрихов должны совпадать с изображением цифры 6.
Из исследования ясно видно, что:
  1. При наличии визуального сходства, имеет место только непрямое совпадение ограждающих штрихов между собой, т. к. на уровне внутреннего представления и на уровне результатов применения алгоритма распознавания ограждающие штрихи LGP/RGP не совпадают с центральным штрихом CGP.
  2. Имеет место также непрямое совпадение изображений ограждающих штрихов и цифры 6, т.к. при наличии 3-х вариантов изображения цифры 6, различных в Set A, Set B и Set C, в представлении Set A цифра 6 вообще не совпадает с ограждающими штрихами, в Set C не совпадает на уровне внутреннего представления в сканере, и только в Set B (22,5% от всех возможных вариантов изображения цифры 6) присутствует полное совпадение изображений ограждающих штрихов и цифры 6.

При проведении данного исследования применялся односторонний подход к анализу информации — чисто математический. Однако известно, что число 666 как имя зверя — число символическое, не имеющее уже математического смысла. Следовательно, и рассматривать его надо символически, как состоящее из символов 6. Шестерки, таким образом, теряют свой математический смысл и также становятся символами. Что же остается от 3-х вариантов представления цифры 6? — Ничего, т.к. можно символ инвертировать — обратить (преобразование по вертикали), можно зеркально отобразить (по горизонтали) — он останется тем же символом — 6.

Такая же ситуация и с различием левого/правого ограждающих штрихов LGP/RGP и центрального штриха CGP. Добавление белых полосок слева (или даже справа) не меняет значения символа. Таким образом, изображения ограждающих штрихов и шестерок совпадают символически, и, следовательно, штрих-код EAN-13 содержит число 666.

Штрихкод стандарта EAN 13 является наиболее известным штрихкодом в Европе, который используется в супермаркетах и других предприятиях розничной торговли для основной идентификации продукции. Это европейский эквивалент штрихкода стандарта UPC-A в Соединенных Штатах. Хотя аббревиатура EAN расшифровывается как Европейский номер товара, в настоящее время код носит техническое название Международный номер товара и также используется за пределами Европы.

Спецификации: Как следует из названия, штрих-коды стандарта EAN 13 хранят в общей сложности 13 цифр, в отличие от кодов стандарта UPC-A, которые содержат 12. Первые две цифры являются префиксом GS1, который определяет страну происхождения продукта. Следующий пятизначный номер компании определяет марку, а последующие пять цифр — сам продукт. Далее находится контрольный знак, который обеспечивает точность кода. В заключение расположен символ «>», определяющий «белое поле», которое означает конец штрихкода.

Преимущества: Штрихкод стандарта EAN 13 является популярным, распознаваемым и полезным для проведения общих повседневных розничных операций, поскольку может считываться любым считывателем штрихкодов. Контрольный знак также помогает обеспечить точность данных в случае их ввода ручным способом. Для получения конкретного одноразрядного результата цифры в штрихкоде математически комбинируются определенным способом. Если контрольный знак не соответствует такому результату, код введен неправильно. .

Недостатки: Ограничение по количеству символов в штрихкоде стандарта EAN 13 уменьшает его возможности использования. Хотя данный стандарт кодирования подходит для общего использования в супермаркетах, его нельзя применить для определения более сложных элементов.

Глава 3. Алгоритм сканирования штрих-кода: локализация и декодирование

Как работают сканеры штрих-кода

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

Шаг 1. Определите регион, в котором присутствует штрих-код

Шаг 2. Извлечение закодированной информации из штрих-кода

Локализация и декодирование

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

Аналогично одномерным штрих-кодам, при запуске сканирования сканер пытается найти штрих-код. Как уже упоминалось, разные символы штрих-кода имеют разные шаблоны распознавания. На этапе декодирования API-интерфейс считывателя штрих-кода пытается интерпретировать шаблоны черно-белых модулей на основе спецификаций этого типа кода. Все эти характеристики стандартизированы. Помимо информации штрих-кода, которая обычно представляет собой комбинацию цифр и символов, двухмерный штрих-код обычно содержит избыточные данные. Затем программное обеспечение может считывать и декодировать значение данных. Закодированное значение строится как стопки кодовых слов. Расширенные методы локализации Существует три метода локализации:

  • Соединяемые блоки
  • Статистика
  • Линейный сегмент

Каждый метод имеет уникальные преимущества и недостатки.Хорошо спроектированный сканер штрих-кода должен найти компромисс между скоростью и точностью. Связанные блоки Первый метод локализации заключается в определении связанных блоков на изображении. Он ищет кластер пикселей, соединенных вместе. Например, любые последовательные блоки пикселей. Как только все блоки изображения идентифицированы, он ищет известные шаблоны штрих-кода для фильтрации местоположений штрих-кода. Например, QR-коды характеризуются четкой квадратной целью в трех из четырех углов.Каждая квадратная мишень в углу состоит из двух блоков: сплошной квадрат в середине пустого внешнего квадрата. Толщина поперечного сечения внешнего квадрата, зазор и ширина сплошного центрального квадрата имеют соотношение 1:1:3. После того, как три отдельных квадрата расположены, необходимо определить края штрих-кода, а также сгруппировать три угловых квадрата в один и тот же штрих-код, рассмотреть особые случаи, когда квадрат отсутствует или частично поврежден и т. д. После того, как области штрих-кода идентифицированы на основе на шаблонах штрих-кода остальное пространство отфильтровывается.Основным преимуществом этого метода является скорость и низкая вычислительная мощность. Его недостатком является высокая восприимчивость к повреждениям штрих-кода. Например, если перо отмечает штрих-код 1D горизонтально, разделенные полосы теперь представляют собой один связанный блок и разрушают распознаваемый шаблон 1D. Статистика Основным преимуществом этого метода локализации является идентификация штрих-кодов на размытых изображениях. Если для расчета отношения между черными и белыми пикселями выбрана произвольная область бинаризованного изображения, мы можем сделать вывод о том, может ли конкретная область содержать штрих-код или нет.Как только определено, что область содержит штрих-код, она дополнительно уточняет области штрих-кода для определения местоположения штрих-кода путем поиска известных шаблонов штрих-кода. Line Segment Как следует из названия, этот метод ищет прямые линии на изображении, а затем отфильтровывает области штрих-кода, сопоставляя линии с известными шаблонами штрих-кода. Этот метод хорошо работает для поврежденных штрих-кодов. В качестве компромисса он требует дополнительных вычислений, чем метод связанных блоков.


Этот пост является частью серии: Рекомендации по максимальному использованию технологии считывания штрих-кодов. Глава 01. Где используются штрих-кодыГлава 02. Набор символов, закодированный в штрих-кодахГлава 03. Алгоритм сканирования штрих-кода: локализация и декодированиеГлава 04. Совет разработчика: улучшите скорость распознавания штрих-кодаГлава 05. Совет разработчика: улучшите скорость распознавания штрих-кодаГлава 06. Технические аспекты при выборе SDK для штрих-кода

Расшифровка штрих-кодов: все, что вы хотели знать об отслеживаемости | Эллисон Копф | Теплица

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

На этом рисунке показаны процессы цепочки поставок, связанные с приготовлением вашего типичного блюда быстрого питания. Через: http://phenomena.nationalgeographic.com/2015/11/04/cdc-food-outbreaks/

Я работал с нашими клиентами, чтобы сократить эту сложность, и хотел поделиться некоторыми из лучших практик, которые мы разработали.

Штрих-коды представляют данные визуально. Знаете ли вы, что штрих-коды, которые вы видите на товарах в вашем продуктовом магазине, имеют значение не только для контроля запасов?

Например, ниже штрих-код, который лежит у меня на столе. 6 цифр: 722252 определяют префикс компании UPC. Добавьте 0, и вы получите префикс вашей компании GS1.В данном случае это префикс Clif Bar. Вместе весь номер штрих-кода: 0722252266194 идентифицирует компанию и продукт — Clif Bar Peanut Butter Banana with Dark Chocolate. Штрих-код также говорит мне, что США является страной происхождения.

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

Это важная система. Он предназначен для смягчения ущерба потребителю от вспышки. Однако это не помогает производителям избежать риска вспышки в будущем. Для любого садовода это настоящее испытание.

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

Меня эти данные не очень интересуют, но Клифа Бара, наверное, интересует. Если продукт отзывают, я должен знать, что конкретно привело к отзыву. Был ли это арахис, который мы купили в определенный день? Если да, то кто поставлял? Из какой партии поступил этот арахис? Кто собирал? Что произошло в этом поле, чтобы вызвать вспышку? Как гроверу предотвратить повторение этого?

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

Мы можем снизить риск эпидемии с помощью прозрачной и безопасной системы записи. Мы называем это «Профилем партии» в Agrilyst. Каждая группа единиц одного сорта, засеянная в один и тот же день, считается уникальной партией и будет содержать полную запись всего, что с ней когда-либо происходило. Фермер может видеть дату посева, дату сбора, урожайность, журнал действий, кто обрабатывал продукцию на разных стадиях роста, номер партии или идентификатор партии, фотографии урожая, информацию о входе и поставщике (информация о семенах показана ниже) и более.

В случае отзыва производитель не будет ограничен информацией об инвентаризации и уровне партии. Теперь они могут выяснить все, что произошло с отдельной партией, и определить способы предотвращения вспышки в будущем.

Мы даже думаем о том, как использовать ИИ для выявления и сокращения предсказуемых вспышек.

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

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

  • Штрих-коды не обязательно должны совпадать с кодами UPC, используемыми для доставки . Это то, что часто смущает производителей.Производители хотят присвоить партии один и тот же код UPC. Поскольку партия является уникальным элементом в Agrilyst, для нее требуется уникальный код. Подумайте об этом отдельно от UPC. Это штрих-код производственного уровня. Это помогает обеспечить полную прослеживаемость от семян до сбора урожая. Затем код UPC вступает в силу для сбора урожая через потребление.
  • Присвоить один штрих-код одной партии . Для печати штрих-кодов на стойках или наклейках требуется время, и никто не должен тратить рабочее время на наклеивание штрих-кодов на каждый отдельный лоток или канал.Поместите наклейку или колышек на самый передний видимый блок, и все будет готово. Если вы действительно хотите добавить один штрих-код на единицу в партии, вы можете это сделать, просто это займет немного больше времени.
  • Штрих-коды — это просто цифры и строки, и их можно настроить по своему усмотрению . Многим нашим клиентам сложно заменить свой метод эскимо, потому что на палочке от эскимо можно увидеть дату посева и сорт. Замена этой ценной информации случайными числами не помогает.Если вы так думаете, вы можете создать простой номер штрих-кода на основе даты посева и сорта, чтобы вы всегда знали, какая партия какая, даже если у вас нет под рукой телефона или планшета. Я рекомендую использовать «код продукта» + «ггггммдд». Например: если Kale — это 001, и вы сегодня засеете партию, ваш штрих-код будет — 001 20171019.
  • При этом я сторонник сокращения рабочего времени, где это возможно. Если вы хотите полностью погрузиться в цифровой мир, я рекомендую использовать стандартные штрих-коды (из программного обеспечения для штрих-кодов или вы можете позвонить нам, и мы вышлем вам несколько).Чтобы увидеть дату посева, ожидаемую дату сбора урожая, активность задачи и многое другое, все, что вам нужно сделать, это отсканировать штрих-код. Пакетный профиль загрузится на ваш телефон, планшет или ноутбук, и вы сразу же получите всю эту информацию.
  • Используйте настраиваемые поля в Agrilyst, если вы хотите сохранить код UPC вместе с отдельными партиями. Например, если вы выращиваете три сорта салата для смеси, вы можете убедиться, что каждый сорт привязан к последнему ящику UPC, отсканировав штрих-код UPC в пользовательское поле. Все аккуратно подключено и доступно для поиска.
  • Назначайте штрих-коды и зонам! Штрих-коды предназначены не только для данных на уровне партии. Вы можете назначать штрих-коды зонам, а также быстро просматривать данные на уровне зон. С помощью Agrilyst вы также можете перемещать партии в зоны, сканируя оба штрих-кода.
  • Управление рисками
  • Соблюдение требований безопасности пищевых продуктов
  • Сокращенное рабочее время
  • Меньше головной боли
  • Удаленный мониторинг

Инициатива, GAP и GFSI.Дайте нам знать, если вы хотите начать использовать штрих-коды на своей ферме — [email protected]

Вы можете научиться читать штрих-код!

Мы кретины и знаем это. Мы едим, спим, шутим и критикуем этикетки со штрих-кодом все время здесь, в EIM. У одного из нас даже есть пара запонок со штрих-кодом. Его поймали в них на одной из наших праздничных вечеринок. Мы знаем, мы знаем. Жалкий.

Что хорошо в нашей занудности, так это то, что — поскольку мы так хорошо знаем свое дело — вам действительно не нужно париться.Мы вас прикрыли. Конечно, мы можем делать обычные вещи, такие как Code 39 и Code 128. Тем не менее, в мире штрих-кодов есть много специализированных и даже совершенно необычных штрих-кодов. Такие коды, как Interleaved 2 of 5, CPC Binary, EAN, ISBN, Aztec, Datamatrix, Chromocode (который дает вам эти приятные, яркие цвета и зелень лета — хорошо, это песня Пола Саймона) и QR-код. Некоторые из них являются одномерными (строго линейными), а некоторые двумерными (нелинейными). Размеры в штрих-коде? Что делать новичку в области штрих-кодов?

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

Что такое контрольная сумма?

Контрольная сумма — это вычисленное значение из блока данных, которое — в случае штрих-кодов — сохраняется вместе с данными для обнаружения повреждения данных.Контрольные суммы являются обязательными элементами штрих-кодов, таких как Code 128 или UPC.

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

Например, последняя цифра штрих-кода UPC (используемого в розничных продуктах) — это контрольная цифра .Допустим, наша контрольная цифра 4, и это проверяется следующим образом:

.

1. Сложите цифры (до контрольной цифры, но не включая ее) в нечетных позициях (первая, третья, пятая и т. д.) вместе (0+2+0+0+2+0= 4 ) и умножить на три (4 х 3 = 12 )

2. Сложите цифры (до контрольной цифры, но не включая ее) в четных позициях (вторая, четвертая, шестая и т. д.) (1+0+0+0+3= 4 )

3. Сложите два результата вместе, чтобы найти сумму.( 12 + 4 = 16 )

4. Контрольной цифрой будет наименьшее число, необходимое для округления суммы до ближайшего кратного 10. (16 округляется до 20; 20 – 16 = 4 = контрольная цифра )

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

Объяснение декодируемости — Тест штрих-кода

Декодируемость — это параметр ISO 15416 для оценки одномерных штрих-кодов. Как следует из названия, это указывает на вероятность того, что штрих-код будет правильно отсканирован и декодирован. Но что именно он проверяет и как это связано с итоговой проверочной оценкой? Путаницу усугубляет то, что стандартная формула не используется для расчета декодируемости для всех линейных штрих-кодов. Формула декодируемости для UPC отличается от формулы Code 128.

ЩЕЛКНИТЕ ПО ИЗОБРАЖЕНИЮ Декодируемость не вызвана усилением

 

Определения

Вот несколько определений декодируемости:

  • «…мера точности напечатанного штрих-кода по сравнению с соответствующим эталонным алгоритмом декодирования. Руководство для неспециалистов по документам о качестве печати штрих-кодов ANSI, CEN и ISO , AIM, Inc., 2002 г.
  • «… тест, в котором верификатор проверяет каждый символ штрих-кода на правильность ширины штрихов и пробелов». Руководство по внедрению процесса проверки штрих-кода GS1 , выпуск 24.1, июль 2015 г.
  • «… градуированный атрибут, который измеряет, насколько профиль отражения сканирования близок к сбою декодирования». https://www.barcode.graphics/education-barcode-ansi-iso-parameters/

Интересно, но бесполезно.Большинство людей хотят знать:

  • Что послужило причиной
  • Что я могу с этим поделать

Причина и следствие

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

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

Основная причина

ЩЕЛКНИТЕ ПО ИЗОБРАЖЕНИЮ Декодируемость и модуляция, вызванные чрезмерным усилением — см. пробелы, не достигающие порогового значения

Сканеры не измеряют широкие и узкие полосы. Они обнаруживают изменения в отражательной способности. Сканеры расшифровывают штрих-коды, обнаруживая различия в отражательной способности света и темноты.Сканер отличает UPC от штрих-кода Code 128, обнаруживая предсказуемую последовательность светлых и темных значений в правильной последовательности и комбинации значений отражательной способности. Медленно прочитайте это еще раз — очень важно понять декодируемость .

Если число переходов от светлого к темному и обратно неверное, сканирование завершится ошибкой.

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

Усиление — не единственная причина отказа. Декодируемость ухудшается, когда штрихи и пробелы не попадают в ожидаемые места. Это может произойти, когда цифровое устройство обработки изображений (термопринтер, струйная система или цифровая печатная машина) получает команду проектирования, которую оно не может выполнить. Если разрешение принтера и разрешение файла проекта не совпадают или математически несовместимы, принтер не может размещать полосы в их точном месте.Изображения должны располагаться там, где находятся пиксели или форсунки. Дробных пикселей нет. Ширина и положение полос перемещаются с шагом в целые пиксели. Декодируемость страдает.

Комментарии и вопросы всегда приветствуются.

Мы тестируем штрих-коды как услугу. Свяжитесь с нами здесь.

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

штрих-кодов и декодер QR-кодов в Python | Автор Ng Wai Foong

Использование pyzbar для декодирования одномерных штрих-кодов и QR-кодов

Фото Proxyclick Система управления посетителями на Unsplash форматов, а также генерация кода быстрого ответа (QR-код). Кроме того, в этом руководстве будут описаны методы декодирования как штрих-кода, так и QR-кода с использованием одной и той же библиотеки Python. Ранее я рассмотрел руководство о том, как генерировать и декодировать QR-коды в Python, в котором для декодирования QR-кодов использовался OpenCV. В этом уроке я буду использовать для декодирования другой модуль под названием pyzbar . Согласно официальной документации, pyzbar — это

«… чистая библиотека Python, которая считывает одномерные штрих-коды и QR-коды с использованием библиотеки zbar, программного пакета с открытым исходным кодом для считывания штрих-кодов из различных источников, таких как видеопотоки. , файлы изображений и необработанные датчики интенсивности.Он поддерживает многие популярные символики (типы штрих-кодов), включая EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, Interleaved 2 of 5 и QR Code».

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

Переходим к следующему разделу и приступаем к установке необходимых модулей.

Перед продолжением установки настоятельно рекомендуется настроить виртуальную среду. Вы можете легко установить все модули через pip install .

python-barcode

Наш первый модуль — это пакет python-barcode, который помогает генерировать одномерные штрих-коды на основе заданных нами форматов. Чтобы установить его, выполните следующую команду:

 pip install python-barcode 

По умолчанию результат будет экспортирован в формате SVG.Вам необходимо установить дополнительные зависимости, такие как Pillow . Вы можете установить зависимости независимо или вместе с python-barcode следующим образом: qrcode

При желании вы можете включить зависимости Pillow вместе со стандартной установкой. .Для пользователей Windows zbar DLL поставляется вместе с колесами Windows Python.

Для Mac OS X можно установить общую библиотеку zbar с помощью следующей команды

 brew install zbar 

При использовании Linux следует использовать следующую команду.

 sudo apt-get install libzbar0 

Когда вы закончите с этим, выполните следующую команду, чтобы установить пакет pyzbar Python.

 pip install pyzbar 

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

 pip install pyzbar[scripts] 

В этом разделе мы собираемся генерировать штрих-коды с помощью пакета python-barcode .

Поддерживаемые форматы

На момент написания этой записи этот пакет поддерживает следующие форматы:

  • EAN-8
  • EAN-13
  • EAN-14
  • UPC-A
  • Jan
  • ISBN-10
  • ISBN-13
  • ISSN
  • Код 39
  • Код 128
  • PZN

Я собираюсь создать новый штрих-код, используя формат EAN13. Результат будет в формате PNG.

Импорт

Давайте добавим следующий оператор импорта. ImageWriter необходим, если вы сохраняете результаты в виде изображений. В противном случае по умолчанию будет использоваться SVG.

 из штрих-кода импортировать EAN13 
из barcode.writer импортировать ImageWriter

Создать и сохранить штрих-код как изображение

Продолжайте добавлять следующий код под ним. Так как мы пишем образ, нужно указать filemode как wb .К вашему сведению, EAN13 принимает строку, содержащую 12 цифр вместо 13. Последняя цифра является контрольной суммой и будет сгенерирована автоматически. Если вы вводите строку из 13 цифр, последняя цифра будет проигнорирована.

 с open('barcode.png', 'wb') as f: 
EAN13('123456789102', Writer=ImageWriter()).write(f)

Полный фрагмент кода выглядит следующим образом:

Он должен сгенерируйте следующее изображение при запуске файла Python.

Image by Author

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

Import

Добавьте следующий оператор импорта

 import qrcode 
from PIL import Image

Создайте экземпляр объекта QRCode со следующими параметрами .constants.ERROR_CORRECT_H,
box_size=10,
border=4,
)

  • версия — Управление размером QR-кода. Он принимает целое число от 1 до 40. Версия 1 состоит из матрицы 21 x 21.
  • error_correction — Управление исправлением ошибок, используемым для QR-кода.
  • box_size — Управление количеством пикселей каждого блока QR-кода.
  • граница — Контроль толщины рамки коробки. Значение по умолчанию равно 4, что также является минимальным значением в соответствии со спецификацией.

Для error_correction доступно 4 константы. Чем больше ошибок можно исправить, тем лучше.

  • ERROR_CORRECT_L — Можно исправить около 7% или менее ошибок.
  • ERROR_CORRECT_M — Можно исправить около 15% или менее ошибок. Это значение по умолчанию.
  • ERROR_CORRECT_Q — Можно исправить около 25% или менее ошибок.
  • ERROR_CORRECT_H — Можно исправить около 30% или менее ошибок.

Продолжайте добавлять ниже следующий фрагмент кода. Замените входной параметр для add_data на основе ваших собственных вариантов использования.

 qr.add_data("https://medium.com/@ngwaifoong92") 
qr.make(fit=True)img = qr.make_image(fill_color="black", back_color="white")
img.save ("qrcode.png")

Полный код приведен ниже.

После запуска кода вы должны получить QR-код. В моем случае это выглядит так.

Изображение автора

Когда вы закончите с этим, перейдите к следующему разделу и начните реализацию нашего декодера.

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

 из pyzbar.pyzbar import decode 

Вы можете передать либо экземпляр PIL.Image , либо экземпляр numpy.ndarray . Вы можете легко загрузить изображение в numpy.ndarry , используя OpenCV . Для загрузки с помощью PIL используйте следующий код

 из PIL import Imageimg = Image.open('qrcode.png') 

Вот пример того, как вы можете загрузить свое изображение с помощью OpenCV .

 import cv2img = cv2.imread('qrcode.png') 

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

 result = decode(img) 

decode() Функция возвращает список из namedtuple с именем Decoded . Каждый из них содержит следующие поля:

  • данные — Декодированная строка в байтах.Вам нужно декодировать его с помощью utf8, чтобы получить строку.
  • введите — полезно только для штрих-кодов, так как определяет формат штрих-кода.
  • rect — Объект Rect , представляющий захваченную область локализации.
  • polygon — Список экземпляров Point , который представляет штрих-код или QR-код.

Если бы вы распечатали весь возвращенный результат, вы должны получить следующий вывод

 [Decoded(data=b'https://medium.com/@ngwaifoong92', type='QRCODE', rect=Rect(left=40, top=40, width=330, height=330), polygon=[Point(x=40, y=40), Point(x =40, y=369), Point(x=370, y=370), Point(x=369, y=40)])] 

Используйте следующий код, чтобы перебрать каждый элемент и распечатать декодированный строка

 для i в результате: 
print(i.data.decode("utf-8"))

Полный код можно найти в следующей сути.

Давайте подытожим то, что мы сегодня узнали.

Мы начали с некоторых пояснений фундаментальных концепций, лежащих в основе python-barcode , qrcode и pyzbar .

После этого мы перешли к установке необходимых модулей. Установка довольно проста: pip install .

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

Наконец, мы использовали модуль pyzbar для декодирования изображений, которые мы создали ранее.

Спасибо, что прочитали эту статью. Надеюсь увидеть вас снова в следующей статье!

Модуль pyzbar: Декодирование штрих-кодов в Python

Привет, товарищ программист! В этом уроке мы узнаем, как декодировать штрих-коды из изображений с помощью Python.Мы будем использовать модуль pyzbar для того же и соединим его с модулем подушки.

Использование модуля pyzbar для декодирования штрих-кодов с изображения

Модуль pyzbar — это модуль, который отвечает за простое считывание и декодирование одномерных штрих-кодов или QR-кодов, и для его правильной работы требуется модуль PIL . Прежде чем внедрять модули, нам сначала нужно импортировать оба модуля.

1. Импорт необходимых модулей

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

 из декодирования импорта pyzbar.pyzbar
из изображения импорта PIL
 

2. Импорт изображения штрих-кода

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

 img = Image.open("bar1.jpg")
 

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

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

Bar1

3. Получение информации из штрих-кода

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

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

 [Декодировано (данные = b'00123456789101112133', тип = 'CODE128', прямоугольная = прямоугольная (левая = 28, верхняя = 0, ширина = 2114, высота = 885), многоугольник = [точка (x = 28, y = 1), точка (x = 28, y = 885), точка (x = 2142, y = 884), точка (x = 2142, y = 0)])]
 

4. Отображение информации о штрих-коде

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

 для i в all_info:
    печать (i. data.decode («utf-8»))
 

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

Заключение

Итак, я надеюсь, вы знаете, как работает декодирование штрих-кодов в языке программирования Python. Спасибо за чтение учебника!

Читайте дальше! Счастливого обучения!

Расшифровка штрих-кодов: как работает технология в черно-белом режиме

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

В программах идентификации кампуса, по-видимому, есть две точки зрения: 1. Наносить штрих-код на карту, поскольку некоторые системы (например, кассы в библиотеке) приспособлены для приема данных со штрих-кода, и 2. Удалять штрих-код с карты. и использовать специальный считыватель для преобразования данных магнитной полосы в формат, имитирующий предыдущие данные штрих-кода. Чтобы полностью понять последствия этого решения, полезно разобраться в технологии штрих-кода.

Что такое штрих-код?

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

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

Символика штрих-кода

Ключ к штрих-коду лежит в стандартизации процессов кодирования/печати и чтения/сканирования. Существует ряд широко используемых символик, каждый из которых имеет разные возможности хранения данных, наборы символов (только числовые, буквенно-цифровые, ASCI и т.) и общие приложения. Общие символы включают Interleaved 2 of 5, Code 39, Code 128, Codabar и Единый код продукта (UPC). Вы можете думать об этом как о разных шрифтах.

Анализ штрих-кода

Хотя каждая символика уникальна, концептуальный процесс одинаков. Чтобы понять этот процесс, представлена ​​разбивка штрих-кода UPC.

UPC — это стандарт, разработанный Комиссией по единому коду (UCC), который используется для идентификации всех продуктов в точках продажи.UPC может представлять только числовые символы и сочетает в себе машиночитаемый штрих-код с видимыми числами, которые при необходимости могут быть прочитаны продавцом в магазине (например, когда продукт не сканируется в кассе продуктового магазина).

Каждый продукт имеет уникальный 12-значный UPC. Производители подают заявку на получение шестизначного идентификационного номера, который присваивается UCC в Дейтоне, штат Огайо. Следующие пять цифр определяются производителем и представляют собой конкретный продукт в линейке продуктов производителя.Последняя цифра — это контрольная цифра, которая является результатом математического расчета с использованием предыдущих 11 цифр. Эта контрольная цифра позволяет сканеру провести ту же математическую формулу для первых 11 цифр и проверить точность. Если результат совпадает, сканер предполагает, что были получены достоверные показания. В противном случае выдается сообщение об ошибке, и штрих-код необходимо сканировать снова. (Часто это происходит, когда продавец продуктового магазина сканирует товар, слышит звуковой сигнал, а затем снова сканирует.)

На самом деле даже машиночитаемая часть штрих-кода может быть переведена терпеливым взглядом. Помните, что это просто ряд черных (B) и белых (w) полос. UPC использует семь полос для создания одного символа. Шаблон этих полос является ключевым, например, W-W-B-B-W-W-B представляет собой номер один.

Первые три и последние три штриха указывают сканеру начать и закончить чтение. Они всегда B-W-B. Центральная точка сигнализируется индикатором из семи полос, который всегда B-W-B-W-B-W-B.Общее количество штрихов в штрих-коде UPC составляет 97 [начальный индикатор (3 штриха) + 12 символов (84 штриха) + центральный индикатор (7 штрихов) + конечный индикатор (3 штриха)]. Хотя это непросто, вы можете перевести штрих-код, используя только глаза, карандаш и бумагу.

Использовать или не использовать…

Как упоминалось во введении к этому обзору, понимание технологии штрих-кода может помочь администратору кампусной карты сделать осознанный выбор в отношении штрих-кодов и идентификационной карты. Как мы видели, в штрих-коде нет ничего волшебного.Это просто машиночитаемая символика данных. Когда существующая кампусная система использует штрих-код, и персонал требует, чтобы у них был этот штрих-код для работы, они, вероятно, путают технологию с данными. Используя библиотеку в качестве примера, система идентификации посетителей должна иметь номер определенной длины — часто девять или 14 цифр — для работы. Получает ли система эти цифры с помощью штрих-кода или каким-либо другим способом, зависит от аппаратного обеспечения внешнего считывателя. Настоящей целью библиотекаря должна быть не защита штрих-кода, а защита существующей системы идентификации посетителей.Посмотрим правде в глаза, никто не хочет переделывать свою систему из-за того, что другой отдел — в данном случае карточная программа — вносит изменения. Борьба за «сохранение штрих-кода» часто рождается больше из-за отсутствия понимания и общения, чем из-за чего-либо еще.

Итак, какие есть варианты?

Напечатать штрих-код на карте.

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

Удалите физический штрих-код и сгенерируйте число той же длины математически из номера ISO или студенческого билета, уже закодированного на магнитной полосе карты.

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

Возьмите настоящий штрих-код в том виде, в котором он существует, и закодируйте его на карте.

Это можно сделать, используя неиспользуемый участок дорожки 1 или 3 на магнитной полосе или новый файл на чипе для карт с микропроцессорным чипом. Плюсы: Никаких изменений в системе идентификации посетителей не требуется, нужно только предоставить карточной программе базу идентификационных номеров. Минусы: только то, что нестандартное кодирование должно быть спланировано так, чтобы стандартные закодированные данные не подвергались опасности.

Состояние штрих-кодов

Сегодня доступны расширенные возможности хранения данных с использованием двумерных штрих-кодов (2-D). Коды используют вертикальное пространство, а также горизонтальное пространство для обозначения данных. Двумерные символы, такие как PDF416, напоминающие случайный набор черных и белых квадратов, значительно расширяют возможности и области применения технологии штрихового кодирования.

Добавить комментарий

Ваш адрес email не будет опубликован.