В таблице 2 приведён алгоритм преобразования числовых данных в знаки символа Interleaved 2 of 5.Для примера возьмём номер 0367123456789.
Таблица 2. Алгоритм преобразования цифровых данных
Алгоритм | Пример |
1. Рассчитывают контрольную цифру для 0367123456789. 2. Берутся четыре крайние левые цифры. 3. Строку числовых знаков разбивают на пары цифр. 4. Пары цифр кодируют следующим образом: – каждую первую цифру каждой пары кодируют комбинацией штрихов в соответствии с таблицей 1. – каждую вторую цифру каждой пары кодируют комбинацией пробелов в соответствии с таблицей 1. 5. Каждую пару знаков символа образуют путём чередования штрихов (тёмных штрихов) и пробелов (светлых штрихов) из комбинаций, полученных в результате выполнения действия 4. При этом за первым штрихом (тёмным штрихом) комбинации первой цифры должен следовать первый пробел (светлый штрих) комбинации второй цифры. | 03 и 67 0 и 6 3 и 7 |
Распознавание штрих-кода
Распознавание элементов штрих-кода можно свести к распознаванию образов. Для оптического распознавания образов можно применить метод перебора вида объекта под различными углами, масштабами, смещениями и т.д. В случае штрих-кода имеется 4 элемента: «0,1» (темного) и «0,1» (светлого). Учитывая особенности алгоритма для распознавания элемента необходимо определить его ширину.
Вычисление контрольной цифры
Типовое вычисление контрольной цифры приведено в таблице 3.
Таблица 3. Типовое вычисление контрольной цифры
Позиции разрядов | |||||||||||||
N1 | N2 | N3 | N4 | N5 | N6 | N7 | N8 | N9 | N10 | N11 | N12 | N13 | N14 |
Умножают значение в каждой позиции на позиционные веса | |||||||||||||
x3 | x1 | x3 | x1 | x3 | x1 | x3 | x1 | x3 | x1 | x3 | x1 | x3 | |
Складывают полученные произведения | |||||||||||||
Разность ближайшего большего или эквивалентного числа, кратного десяти, и полученной суммы равна контрольной цифре |
|
Примеры
На рисунке 1 представлена последовательность элементов: штрихов (тёмных штрихов) и пробелов (светлых штрихов), соответствующая парам знаков цифр «03 и 67».
Рис. 1. Пары знаков символа Interleaved 2 of 5, кодирующие 03 и 67
Как отмечалось ранее знак «СТАРТ» должен состоять из четырёх узких элементов в последовательности «штрих – пробел – штрих – пробел». Знак «СТОП» должен состоять из последовательности «широкий штрих – узкий пробел – узкий штрих», как показано на рис. 2.
Знак «СТАРТ» должен располагаться слева перед знаками символа при обычном его расположении и примыкать к первому штриху комбинации, кодирующей цифру старшего разряда.
Знак «СТОП» должен располагаться справа от знаков символа при обычном его расположении и примыкать к последнему пробелу комбинации, кодирующей цифру младшего разряда.
Знаки «СТАРТ» и «СТОП» не имеют визуального представления для чтения и не подлежат передаче декодером. Знаки «СТАРТ» и «СТОП» с указанием их взаимосвязи со знаками символа приведены на рисунке 2.
Рис. 2. Знаки «СТАРТ» и «СТОП»
На рисунке 3 приведён законченный символ штрихового кода для числа 1234 с представлением необходимых свободных зон.
Рис. 3. Символ Interleaved 2of 5 с указанием свободных зон
В таблице 4 приведён пример типового вычисления контрольной цифры для последовательности 0367123456789.
Таблица 4. Типовое вычисление контрольной цифры
|
Действия | Позиции разрядов | |||||||||||||
N1 | N2 | N3 | N4 | N5 | N6 | N7 | N8 | N9 | N10 | N11 | N12 | N13 | N14 | |
Число без контрольной цифры | ||||||||||||||
Умножение на позиционные веса | x3 | x1 | x3 | x1 | x3 | x1 | x3 | x1 | x3 | x1 | x3 | x1 | x3 | |
Результат умножения | ||||||||||||||
Сложение результатов умножения | =123 | |||||||||||||
Вычитание суммы из ближайшего эквивалентного или большего, кратного 10 (130) = контрольная цифра (7) | ||||||||||||||
Число с контрольной цифрой |