ГОСТ Р ИСО/МЭК 29158-2022. Национальный стандарт Российской Федерации. Информационные технологии. Технологии автоматической идентификации и сбора данных. Рекомендации по контролю качества маркировки при прямом маркировании изделий (ПМИ)
Приложение D
(обязательное)
АЛГОРИТМ СОЕДИНЕНИЯ ТОЧЕК
Этот процесс называется "функцией стыковки" и применяется с приведенным в двоичную форму изображением. Результат используют для первоначального декодирования с использованием рекомендуемого алгоритма декодирования. Приведенные ниже шаги направлены на соединение областей изображения, которые разделены менее чем одним модулем, но не соединяют области, которые разделены расстоянием в модуль или более, например, чередующихся модулей "дорожки синхронизации".
D.1 Первоначальный выбор размера стыковочного сегмента и цвета модуля
Поскольку размер модуля при выполнении этого алгоритма неизвестен, последовательно используют предположения о размере модуля в диапазоне от 50% наименьшего и до 110% наибольшего размера X, разрешенного спецификацией по применению.
Кроме того, применение алгоритма также требует знания цвета модуля "двоичная единица" и "двоичный ноль". Как правило, цвет модуля "двоичная единица" темный для светлого фона и светлый для темного фона. (Например, цвет модуля "двоичная единица" - это цвет "L-образного шаблона" символа Data Matrix.) Если при расчете не "известен" цвет модуля "двоичная единица", может потребоваться повторение алгоритма для каждого случая.
Примечание - Пользователи могут проводить оптимизацию этого алгоритма (например, путем анализа изображения сделать лучшее предположение о правильном размере стыковочного сегмента) до тех пор, пока не будет получен эквивалентный результат.
D.2 Соединение элементов одного цвета
1) Выполняют следующие действия:
a) Устанавливают для каждого пикселя в результирующем изображении его принадлежность к фоновому цвету "двоичный ноль".
b) Устанавливают начальный размер стыковочного сегмента равным 50% минимального размера X для конкретного применения.
2) Начинают с ряда элементов изображения, расположенного на расстоянии, равном половине размера стыковочного сегмента, в направлении вниз от вершины символа, и с колонки, находящейся на расстоянии, равном половине размера стыковочного сегмента с левой стороны в направлении к внутренней части изображения:
a) Если цвет пикселя соответствует "двоичной единице", размещают пиксель на том же расстоянии в результирующем изображении и переходят к этапу, указанному в перечислении 2e.
b) Находят два пикселя, расположенных на расстоянии, равном половине стыковочного сегмента, в направлении влево и вправо, и два пикселя, расположенных на расстоянии, равном половине стыковочного сегмента, в направлении вниз и вверх.
c) Если оба горизонтальных или вертикальных пикселя, обнаруженных согласно перечислению 2b имеют цвет "двоичной единицы", переходят к действиям, указанным в перечислении 2d; в противном случае выполняют действия, указанные в перечислении 2e.
d) Для каждого пикселя на линии или линиях между двумя пикселями "двоичная единица" обнаруженными при выполнении действий, указанных в перечислении 2b (линия, равная по длине стыковочному сегменту), определяют соответствующим образом размещенные пиксели "двоичная единица" в результирующем изображении.
e) Переходят к следующему пикселю и выполняют действия, указанные в перечислении 2a. (Если положение текущего пикселя находится на расстоянии, равном половине длины стыковочного сегмента вглубь изображения с правого края, следующий пиксель является началом колонки на расстоянии, равном половине длины стыковочного сегмента в направлении внутрь от левого края в следующем ряду. Если положение текущего пикселя находится в ряду на расстоянии, равном половине длины стыковочного сегмента в направлении вверх от основания изображения и на расстоянии, равном половине длины стыковочного сегмента в направлении внутрь с правого края, считают, что проход через все изображение полностью завершен).
D.3 Применение рекомендуемого алгоритма декодирования
D.3.1 Общие сведения
Стандартизованные матричные символики требуют определения места положения сплошных модулей при использовании рекомендуемых алгоритмов декодирования. С помощью некоторых технологий маркирования невозможно производить символы с гладкими непрерывными линиями, создающими изображение в устройстве формирования изображения. Например символы, полученные с применением иглоударной технологии, состоят из несвязанных между собой точек.
После того как основные линии символа будут определены, информация о их размещении должна быть преобразована для определения действительного изображения символа и выполнена последующая обработка.
D.3.2 Определение базовых линий символики
Используя связанное изображение, определенное по D.2, находят базовые линии символики с помощью рекомендуемого алгоритма декодирования для символики.
Пример - Базовыми линиями для символики Data Matrix является "L"-образный шаблон.
D.3.3 Преобразование базовых линий
Преобразуют базовые линии в изображении в двоичную форму. Продолжают декодирование с помощью рекомендуемого алгоритма. Если алгоритм применен успешно, выполняют действия, указанные в 7.4 настоящего стандарта.
D.4 Повторение декодирования при необходимости
Если попытка декодирования была неуспешной, выбирают новый размер стыковочного сегмента, который должен быть не менее чем на один пиксель больше по длине, и новый размер апертуры, равный 0,8 размера стыковочного сегмента, после чего выполняют действия, указанные в 7.2.1 настоящего стандарта.
D.5 Продолжение декодирования до завершения
Декодирование продолжают до тех пор, пока символ не будет успешно декодирован или до тех пор, когда размер стыковочного сегмента станет больше максимального размера стыковочного сегмента или будет равен 1/10 максимального размера изображения в пикселях (если максимальный размер X не известен). Если линии символа не найдены, класс качества символа считают равным 0.
Примечание - Этот алгоритм предполагает, что символ ориентирован ортогонально в плоскости светочувствительных элементов устройства формирования изображения, так что модули в изображении должны быть связаны и выровнены вертикально и горизонтально. Если это условие не выполняется, может потребоваться поворот стыковочных сегментов на все углы дополнительно к расположению в вертикальном и горизонтальном направлениях.