юридическая фирма 'Интернет и Право'
Основные ссылки




На правах рекламы:



Яндекс цитирования





Произвольная ссылка:



Описание
Источник публикации
ИУС "Национальные стандарты", N 1, 2014
Примечание к документу
Документ введен в действие с 1 января 2014 года.
Название документа
"Изменение N 1 ГОСТ Р ИСО/МЭК 16022-2008 "Автоматическая идентификация. Кодирование штриховое. Спецификация символики Data Matrix"
(утв. и введено в действие Приказом Росстандарта от 26.09.2013 N 1112-ст)

"Изменение N 1 ГОСТ Р ИСО/МЭК 16022-2008 "Автоматическая идентификация. Кодирование штриховое. Спецификация символики Data Matrix"
(утв. и введено в действие Приказом Росстандарта от 26.09.2013 N 1112-ст)


Утверждено и введено в действие
Приказом Федерального
агентства по техническому
регулированию и метрологии
от 26 сентября 2013 г. N 1112-ст
ИЗМЕНЕНИЕ N 1 ГОСТ Р ИСО/МЭК 16022-2008
"АВТОМАТИЧЕСКАЯ ИДЕНТИФИКАЦИЯ. КОДИРОВАНИЕ ШТРИХОВОЕ.
СПЕЦИФИКАЦИЯ СИМВОЛИКИ DATA MATRIX"
ОКС 35.040
Дата введения
1 января 2014 года
Утверждено и введено в действие Приказом Федерального агентства по техническому регулированию и метрологии от 26.09.2013 N 1112-ст.
Раздел 9 изложить в новой редакции:
"9. Рекомендуемый алгоритм декодирования для символики Data Matrix
Данный рекомендуемый алгоритм декодирования <1> позволяет находить на изображении символы Data Matrix и производить их декодирование следующим образом:
--------------------------------
<1> Разработаны и иные алгоритмы декодирования с аналогичными функциями.
а) определяют значения параметров размеров и формируют цифровое изображение:
1) задают расстояние , равное 7,5 диаметра апертуры, заданной в системе применения, которое считают минимальной длиной стороны L-образного шаблона поиска;
2) задают расстояние , равное 7,5 диаметра апертуры. Это расстояние считают максимальным промежутком в L-образном шаблоне поиска, допускаемым алгоритмом поиска на этапе b);
3) задают расстояние , равное 1,25 диаметра апертуры, которое считают номинальным наименьшим размером модуля, когда размер апертуры составляет 80% размера X символа;
4) формируют черно-белое изображение, используя порог, определенный по методике, установленной в ИСО/МЭК 15415;
б) осуществляют поиск горизонтальной и вертикальной линий сканирования для двух внешних L-образных границ Data Matrix:
1) продлевают горизонтальную линию сканирования по обе стороны от центральной точки изображения и, следуя вдоль этой линии, находят все точки перехода черное/белое и белое/черное. Для каждой точки перехода, найденной на линии сканирования и приведенной к границе пикселя (называемой далее точкой старта), производят следующее:
i) следуют от точки старта вверх вдоль границы перехода черный-белый, пиксель за пикселем до точки, расположенной на расстоянии от точки старта, или до той точки, в которой линия границы поворачивает вниз;
ii) следуют от точки старта вниз вдоль границы перехода черный-белый, пиксель за пикселем до точки, расположенной на расстоянии от точки старта, или до той точки, в которой линия границы поворачивает вверх;
iii) если при движении вверх достигли точки, отстоящей на от точки старта:
I) проводят линию A, соединяющую конечные точки вертикальной границы перехода;
II) проверяют, чтобы отклонение промежуточных точек границы от прямой линии A находилось в пределах . Если это условие выполняется, то продолжают выполнение с этапа, указанного в перечислении III). В противном случае переходят к выполнению этапа, указанного в перечислении 1) iv), до достижения края границы перехода в противоположное направление;
III) продолжают следовать вверх вдоль границы перехода до расстояния от линии A. Возвращаются в ближайшую точку границы перехода, находящуюся на расстоянии, большем или равном , от последней точки границы перехода вдоль линии границы перехода и сохраняют ее как конечную точку границы перехода. Эту точку следует рассматривать как одно из предполагаемых положений границ внешнего края L-образных границ;
IV) продолжают следовать вниз вдоль границы перехода до расстояния от линии A. Возвращаются в ближайшую точку границы перехода, находящуюся на расстоянии, большем или равным , от последней точки границы перехода вдоль линии границы перехода и сохраняют ее как конечную точку границы перехода. Эта точка должна быть расположена на предполагаемой границе перехода, и ее следует рассматривать как одно из предполагаемых положений границы внешнего края L-образных границ;
V) вычисляют новую откорректированную линию A1, которая является "наиболее приближенной" линией для границы перехода, определенной на двух предыдущих этапах. "Наиболее приближенную" линию вычисляют с использованием алгоритма линейной регрессии (используя конечные точки для выбора зависимой оси, то есть если они ближе к горизонтальной оси, зависимая ось - ось x) для каждой точки. На "наиболее приближенной" прямой линии отмечают отрезок, ограниченный точками p1 и p2, которые являются ближайшими к найденным выше конечным точкам границы перехода;
VI) сохраняют две конечные точки отрезка линии A1 - p1 и p2. Также сохраняют значение цвета левой стороны края границы перехода, видимое при движении от p1 к p2;
iv) если этап, указанный в перечислении iii), закончился неудачей или невозможно продолжить движение вниз на на этапе, указанном в перечислении iii) IV), проверяют, достигнута ли снизу граница перехода на расстоянии от точки старта. Если да, повторяют операции этапа, указанные в перечислении iii), но не вверх, а вниз;
v) если этапы, указанные в перечислениях iii) и iv), закончились неудачей, проверяют, находятся ли верхняя и нижняя границы перехода на расстоянии не менее от точки старта. Если достигнуты верхняя и нижняя границы перехода, то включают в формируемую границу перехода сегменты вверх и вниз на расстоянии и повторяют операции этапа, указанные в перечислении iii), но с добавлением границы перехода;
vi) повторяют вышеуказанный процесс для следующей точки перехода на линии сканирования, начиная с этапа, указанного в перечислении i), до достижения края изображения;
2) проводят линию сканирования вертикально в обоих направлениях от центральной точки изображения. Находят отрезки линий с использованием той же логической процедуры, что и на этапе, указанном в пункте 1), одновременно следуя от каждой границы перехода символа влево, а затем вправо;
3) среди сохраненных отрезков линий A1 осуществляют поиск пар отрезков, удовлетворяющих следующим четырем условиям:
i) если два отрезка имеют одно и то же направление от p1 до p2, проверяют, что расстояние от точки p1 одного отрезка до точки p2 другого отрезка менее, чем ; если противоположное, то проверяют, что расстояние между точками p1 и p1 или между точками p2 и p2 разных отрезков менее, чем ;
ii) два вышеуказанных отрезка должны быть параллельными с отклонением не более 5°;
iii) два вышеуказанных отрезка должны быть одного цвета, если отрезки имеют одинаковое направление от p1 к p2, или противоположного цвета, если направления этих отрезков противоположны;
iv) формируют две временные линии, продолжая каждый из двух рассматриваемых отрезков по достижении на их продолжениях точки, ближайшей к конечной точке отрезка другой линии. Проверяют, чтобы обе временные линии были отделены менее чем на от любой иной точки каждой линии;
4) для каждой пары линий, соответствующих требованиям этапа, указанного в перечислении 3), заменяют эту пару отрезков линий на один удлиненный отрезок линии A1 путем выбора "наиболее приближенной" линии по четырем конечным точкам пары рассматриваемых коротких отрезков линий. Также запоминают значение цвета левой стороны границы перехода новой удлиненной линии, рассматриваемой от конечной точки p1 до конечной точки p2;
5) повторяют этапы, указанные в перечислениях 3) и 4), до тех пор, пока возможно комбинировать пары линии A1;
6) выбирают отрезки линии длиннее . Помечают эти линии как предполагаемые L-образные стороны;
7) находят среди полученных пар предполагаемых L-образных сторон две линии, которые должны соответствовать следующим трем критериям:
i) ближайшие точки этих линий должны находиться друг от друга на расстоянии менее ;
ii) эти две линии должны быть взаимно перпендикулярны с погрешностью до 5°;
iii) внутренняя сторона угла, образованного этими линиями, должна иметь один и тот же цвет.
Следует иметь в виду, что если одна или обе линии простираются в обе стороны от точки их пересечения, то два или четыре образованных L-образных шаблона должны быть проверены на соответствие цвету и минимальной длине для укороченной стороны или сторон, прежде чем они могут стать предполагаемыми L-образными границами;
8) для каждой пары отрезков - предполагаемых L-образных границ, найденных на этапе, указанном в перечислении 7), формируют предполагаемую L-образную структуру путем продления отрезков до точки их пересечения;
9) если предполагаемая L-образная структура была сформирована из отрезков линий белого цвета внутри угла L-образной структуры, формируют инвертированное по цвету изображение для декодирования. Предпринимают попытки декодировать символ, начиная с нормального или инвертированного изображения, выбирая в качестве начального этап, указанный в перечислении d), используя каждую предполагаемую L-образную структуру, определенную на этапе, указанном в перечислении 8), как L-образный шаблон поиска. Если декодирование не удалось выполнить, переходят к этапу, указанному в перечислении c);
c) продолжают подбирать отрезки линий A1 и предполагаемые L-образные структуры аналогично предыдущим этапам, также продолжают поиски предполагаемых L-образных структур, используя горизонтальное и вертикальное смещение линий сканирования по отношению к предыдущим линиям сканирования:
1) используя новую горизонтальную линию сканирования, проведенную на расстоянии выше от центральной горизонтальной линии, повторяют в том же порядке действия этапа, указанного в пункте b) 1), исключая действия, при которых процесс начинается из центральной точки изображения, и этапы, указанные в перечислениях от b) 3) до b) 9). Если декодирование не удалось выполнить, переходят к следующему этапу;
2) используя новую вертикальную линию сканирования, проведенную на расстоянии слева от центральной вертикальной линии сканирования, повторяют действия этапа, указанного в перечислении b) 2), исключая действия, при которых процесс начинается из центральной точки изображения, и этапы, указанные в перечислении от b) 3) до b) 9). Если декодирование не удалось выполнить, переходят к следующему этапу;
3) повторяют действия этапа, указанного в перечислении 1) выше, используя новую горизонтальную линию сканирования, расположенную на расстоянии ниже центральной горизонтальной линии сканирования. Если декодирование не удалось выполнить, повторяют действия этапа, указанного в перечислении 2), но со сдвигом новой вертикальной линии сканирования на вправо от центральной вертикальной линии сканирования. Если декодирование не удалось выполнить, переходят к этапу, указанному в перечислении 4);
4) продолжают производить горизонтальные и вертикальные линии сканирования, как это предусмотрено на этапах, указанных в перечислениях 1) - 3), на вверх, затем влево, затем вниз, затем вправо от ранее произведенных линий сканирования до успешного декодирования символа или до достижения края изображения;
d) первоначально считают, что область-кандидат содержит символ квадратной формы. Если декодировать область как символ квадратной формы не удается, пытаются найти и декодировать символ прямоугольной формы, начиная с этапа, указанного в перечислении j). Для символа квадратной формы сначала формируют нормализованную схему переходов для равных сторон области-кандидата, чтобы найти шаблон поиска с чередующимися модулями:
1) проводят через область-кандидат линию, делящую пополам внутренний угол, образованный L-образными сторонами (рисунок 9). Определяют две равные области, образованные этой разделительной линией (биссектрисой), как левую и правую области со стороны угла L-образной структуры;
Рисунок 9. Направления движения линий поиска
2) для каждой области формируют так называемую линию поиска, расположенную на расстоянии от вершины угла L-образной структуры и параллельную другой ее стороне, и продолжают эту линию до биссектрисы согласно рисунку 9;
3) сдвигают каждую линию поиска от вершины угла L-образной структуры (рисунок 9), удлиняя каждую линию поиска, чтобы они всегда начинались от стороны угла L-образной структуры и заканчивались на биссектрисе, сохраняя линии поиска параллельными противоположным сторонам угла L-образной структуры. Каждый раз, когда линия поиска сдвигается на один пиксель изображения, подсчитывают число переходов от черного к белому и от белого к черному, начиная и заканчивая подсчет с перехода от цвета стороны L-образной структуры к противоположному цвету. Подсчет переходов следует делать только тогда, когда линия поиска имеет те же самые цвета, что и две линии непосредственно выше и ниже (левее и правее) текущей, и отличается по цвету от предыдущей линии поиска, для которой такой подсчет делался. Вычисляют величину T как число переходов, умноженное на длину наибольшей стороны L-образной структуры и разделенное на текущую длину линии поиска, измеренную между двумя граничными линиями:
T = (число переходов) x (максимальная длина стороны L-образной структуры)/(длина линии поиска).
Эта формула нормализует значение T, предупреждая его увеличение по мере увеличения длины линии поиска.
Продолжают вычислять значения T до тех пор, пока линия поиска не будет длиннее наибольшей оси предполагаемой области-кандидата символа на 50%;
4) строят график зависимости T для каждой стороны (области), где на оси ординат Y указано значение T, а на оси абсцисс X - расстояние линии поиска от вершины угла L-образной структуры. Пример графика приведен на рисунке 10;
Рисунок 10. Пример графика зависимости T от увеличения
длины линии поиска
5) рассматривают график T для правой стороны (области), начиная с наименьших значений по оси X, с постепенным увеличением значений X по этой оси. Находят первое место резкого падения значения на графике T, где значение ( - максимальное значение одной из двух величин - ноль и T - 1) менее 15% значения T в местном локальном максимуме (при условии, что T более 1). Увеличивают это значение X, пока значение T не перестанет уменьшаться. Если в следующей точке значение T не увеличивается, то увеличивают значение X еще раз. Отмечают это значение X как соответствующее впадине. Увеличивают значение X для поиска локального максимума до тех пор, пока число переходов не станет уменьшаться. Отмечают это значение X как соответствующее пику. Значение X ровно посередине между X для впадины и X для пика называют X линии убывания. Линия поиска в точке пика может соответствовать стороне чередующегося шаблона поиска противоположной области. Линия поиска во впадине может соответствовать внутренней части однородной темной линии или светлой свободной зоне;
6) находит пик и впадину на графике для левой стороны (области), X линии убывания которых в наибольшей степени подходят по координате X линии убывания пика и впадины на графике для правой стороны (области). При возвращении к этому этапу от этапов, указанных ниже, рассматривают дополнительные пики и впадины левой области в порядке увеличения расстояния от пиков и впадин правой области. Однако должны быть просмотрены все пики и впадины левой области, чтобы гарантировать, что разница между значениями X для пиков правой и левой области менее чем на 15% отличается от среднего значения X для двух пиков и что разница между значениями X для впадин правой и левой области менее чем на 15% отличается от среднего значения X для двух впадин. Значение, равное 15%, соответствует максимально разрешенному сокращению;
7) линия поиска, соответствующая впадине на графике для правой стороны, линия поиска, соответствующая впадине на графике для левой стороны, и две стороны угла L-образной структуры очерчивают возможную область данных символа. Проводят обработку этой области данных согласно этапу, указанному в перечислении e). Если декодирование выполнено неудачно, бракуют значения для пика и впадины на графике для левой области и продолжают поиск, начиная с этапа, указанного в пункте d) 6), для следующего пика и впадины. Если все пики и впадины левой области были забракованы, бракуют значения для пика и впадины на графике для правой области и продолжают поиск, начиная с этапа, указанного в пункте d) 5), для следующего пика и впадины;
e) для каждой из двух сторон чередующегося шаблона находят линию, проходящую через центры чередующихся темных и светлых модулей:
1) для каждой стороны формируют прямоугольную область, ограниченную линиями поиска для пика и впадины как двумя длинными сторонами прямоугольной области и стороной L-образной структуры и линией для впадины для другой стороны как короткими сторонами прямоугольной области (рисунок 11);
Рисунок 11. Построение прямоугольной области
2) в пределах этой прямоугольной области находят пару границ между пикселями на стороне с "зубцами":
i) проводят контрольные линии, параллельные линии впадины, первая из которых совпадает с этой линией, и определяют все переходы цвета в направлении, перпендикулярном к контрольным линиям. Выбирают только переходы от темного к светлому или от светлого к темному, где первый цвет соответствует преобладающему цвету на изображении вдоль линии впадины;
ii) если число найденных цветовых переходов менее, чем 15% числа пикселей, составляющих линию впадины, и контрольная линия не является линией пика, сдвигают контрольную линию в сторону линии пика приблизительно на один пиксель и повторяют действия этапа, указанного в перечислении i), рассматривая новые переходы в дополнение к уже найденным. Если выполнено условие наличия 15% числа цветовых переходов к числу пикселей или достигнута линия пика, переходят к следующему этапу; иначе продолжают поиск, начиная с пункта d) 6) для следующих пиков и впадин левой области;
iii) вычисляют предварительную "наиболее приближенную линию" с помощью алгоритма линейной регрессии, используя точки на границах между выбранными парами пикселей;
iv) отбрасывают 25% точек, наиболее отдаленных от предварительной "наиболее приближенной линии". Вычисляют окончательную наиболее приближенную линию" с помощью алгоритма линейной регрессии с использованием оставшихся 75% точек. Эта линия должна проходить вдоль внешней стороны чередующегося шаблона и указана на рисунке 12 как "наиболее приближенная" линия;
3) для каждой прямоугольной области строят линию, параллельную линии, определенной на этапе, указанном в перечислении e) 2), смещенную в сторону вершины угла L-образной структуры на длину "пиковой" линии поиска, разделенную на удвоенное число переходов на этой линии поиска;
Смещение (Offset) = длина линии пика/((число переходов) + 1) x 2).
Рисунок 12. Линия центров модулей чередующегося шаблона
Каждая из этих двух построенных линий должна соответствовать линии, проведенной через середины модулей внешнего или внутреннего чередующегося шаблона для этой стороны (рисунок 12).
f) для каждой стороны определяют расстояние от края до края в чередующемся шаблоне:
1) ограничивают линию, проходящую через центры модулей чередующегося шаблона, сформированную на этапе, указанном в перечислении e) 3), с одной стороны границей L-образной структуры, а с другой стороны - средней линией чередующегося шаблона, определенной на этапе, указанном в перечислении e) 3). Длину этой линии обозначают (рисунок 11);
2) вдоль ограниченной средней линии измеряют расстояния от края до края между всеми подобными границами всех двухэлементных пар, то есть пар элементов темный/светлый и светлый/темный.
Измерения начинаются и заканчиваются с границы перехода от цвета стороны L-образной структуры к противоположному цвету;
3) вычисляют среднее арифметическое значение всех измерений расстояний от края до края и устанавливают текущую оценку расстояния от края до края EE_Dist как это среднее;
4) бракуют все пары элементов, у которых измеренные расстояния от края до края отличаются более чем на 25% от EE_Dist;
g) для каждой стороны находят центральные точки модулей в чередующемся шаблоне:
1) используя измеренные расстояния пар элементов, не забракованные на этапе, указанном в пункте f) 4), вычисляют среднее приращение ширины темного элемента (штриха) при печати (по вертикали или горизонтали в зависимости от стороны сегмента) по формуле как среднее приращение ширины темного элемента (штриха) при печати для пар элементов (темный/светлый или штрих/пробел, в которой "штрих" - это ширина темного элемента, а "пробел" - ширина светлого элемента в оставшейся паре элементов):
ink_spread = Average ((bar - ((bar + space)/2))/((bar +
+ space)/2)) <1>;
2) вычисляют центр темного элемента (штриха) в паре элементов, занимающих среднее положение, используя следующее смещение в сторону темного элемента (штриха) от внешнего края темного элемента (штриха) в паре элементов, занимающих среднее положение:
offset = (EE_Dist x (1 + ink_spread))/4 <2>.
--------------------------------
<1> Обозначения в формуле:
ink_spread - среднее приращение ширины темного элемента (штриха) при печати;
Average - обозначение среднеарифметического значения;
bar - ширина темного элемента (штриха);
space - ширина светлого элемента (пробела).
<2> Обозначения в формуле:
offset - смещение;
EE_Dist - среднее арифметическое значение измеренных расстояний от края до края;
ink_spread - среднее приращение ширины темного элемента (штриха) при печати.
Если есть более одной пары элементов, занимающих среднее положение, выбирают единственную пару, используя следующий процесс:
i) просматривают список краев (пар элементов) в порядке увеличения расстояния от границы L-образного шаблона поиска. Количество краев должно быть нечетным числом, поскольку они начинаются и заканчиваются с перехода от темного к светлому, начиная с L-образного шаблона поиска;
ii) средний край в этом списке называют центральным краем;
iii) вычисляют (нечетное число) расстояния от края до края пар элементов и находят их медиану EE_Dist;
iv) выбирают одну или более пар элементов с длиной EE_Dist;
v) среди этих пар выбирают одну или две пары краев элементов, которые имеют края, самые близкие к центральному краю;
vi) если необходимо, выбирают пару элементов, которые имеют внешний темный край, самый близкий к центральному краю;
vii) если необходимо, выбирают пару элементов, которые имеют внутренний край, самый близкий к центральному краю;
3) начиная от центра темного элемента (штриха) пары элементов, занимающих среднее положение, из этапа, указанного в перечислении f) 3), и продолжая процесс в направлении светлого элемента (пробела) из пары элементов до конца ограниченной средней линии, вычисляют центр каждого элемента, выделенного белыми точками на темном фоне (рисунок 13) с выполнением следующих действий:
Рисунок 13. Измерения расстояний от края до края
для определения центра каждого элемента
Примечание. На рисунке 13 показаны три темных (штриха) и два светлых элемента (пробела). Если элемент, центр которого вычисляют, светлый (пробел), то на схеме должны быть представлены три светлых элемента (пробела) вместо темных (штрихов) и два темных элемента (штриха) вместо светлых (пробелов). Для светлых элементов (пробелов), смежных с конечными элементами средней линии, измерения расстояний D1 или D4 не проводят, поскольку они оказываются за границами символа или измеряемого сегмента.
i) вычисляют точку p1, находящуюся на средней линии на расстоянии EE_Dist/2 от предыдущего вычисленного центра элемента в направлении нового элемента;
ii) вычисляют значения :
,
,
,
.
iii) если одно из значений находится в пределах 25% от EE_Dist, выбирают одно из значений , ближайшее к EE_Dist, и устанавливают новое значение EE_Dist как среднее между текущим значением EE_Dist и выбранным из диапазона :
I) если выбрано значение или , определяют соответствующий край D1 или D4, ближайший к элементу, центр которого необходимо вычислить. Сдвигают этот край на расстояние (ink_spread/2) x (EE_Dist/2) в соответствующем направлении (то есть, если приращение ширины темного элемента (штриха) ink_spread положительная величина, смещение края должно быть в сторону светлого элемента (пробела), заключенного в пределах значений D1 или D4, и, если отрицательная, смещение должно быть в противоположную сторону от светлого элемента). Вычисляют точку p2, находящуюся на средней линии на расстоянии 0,75 выбранного значения или от этого смещенного края в сторону элемента, центр которого должен быть вычислен;
II) если выбрано значение или , определяют соответствующий край D2 или D3, ближайший к элементу, центр которого необходимо вычислить. Сдвигают этот край на расстояние (ink_spread/2) x (EE_Dist/2) в соответствующем направлении (то есть, если приращение ширины темного элемента (штриха) при печати является положительным значением, смещение края должно быть проведено в сторону светлого элемента (пробела), заключенного в пределах значений D2 или D3, и, если отрицательным, смещение должно быть в противоположную сторону от светлого элемента). Вычисляют точку p2, находящуюся на средней линии на расстоянии 0,25 выбранного значения или от смещенного края в сторону элемента, центр которого следует вычислить;
III) считают, что центр элемента находится точно посередине между точками p1 и p2;
iv) в противном случае, если ни одно из значений , , , не находится в пределах 25% EE_Dist, оставляют текущее значение EE_Dist, используют p1 как центр нового элемента и переходят к определению следующего элемента;
4) начиная с темного элемента в паре элементов, занимающих среднее положение, и продолжая в противоположном направлении по отношению к определенному на этапе, указанном в пункте 3), вплоть до окончания ограниченной средней линии, вычисляют центры каждого элемента, используя порядок действий, установленный для этапа, указанного в перечислении 3);
h) если число модулей в каждой стороне не соответствует допустимой первой области, продолжают искать с этапа, указанного в перечислении d) 6), для следующего левого пика и впадины. Иначе составляют пробную сетку модулей данных в области данных, проводя линии из центров модулей шаблона чередующихся модулей:
1) для каждой стороны продолжают каждую линию, построенную на этапе, указанном в перечислении e) 3), и линию противоположной стороны L-образной структуры для формирования точек схода двух почти параллельных линий;
2) из каждой точки схода проводят лучи, проходящие через центры модулей, построенные на этапе, указанном в перечислении g), в направлении, близком к перпендикуляру к линии, полученной на этапе, указанном в перечислении e) 3);
3) точки пересечения этих двух направлений лучей, близких к перпендикулярным, должны соответствовать центрам модулей данных в области данных (рисунок 14);
Рисунок 14. Формирование реальной сетки модулей
i) продолжают заполнение остальных областей данных;
1) в процессе составления области данных формируют новую L-образную структуру части данных левее или выше, используя одну из двух следующих процедур:
i) если новая область данных по-прежнему ограничена с одной стороны исходной L-образной структурой, полученной на этапе, указанном в перечислении b), повторяют этап, указанный в перечислении e), устанавливая новую область данных и используя множество точек, выбранных на этапе, указанном в перечислении e) 2), и множество точек на стороне L-образной структуры из этапа, указанного в перечислении b) 2), которые находятся за пределами линии, полученной на этапе, указанном в перечислении e) 2).
ii) если новая область данных ограничена с двух сторон другими областями данных, повторяют порядок действий с этапа, указанного в перечислении e), для определения новой области данных с помощью множества точек, выбранных на этапе, указанном в перечислении e) 2), для каждой области данных, которая примыкает и ограничивает новую область данных с двух сторон;
2) если область данных не соответствует по числу модулей ранее полученным областям данных, символ корректируют путем его уменьшения до ближайшего большего числа областей, допускаемых стандартом для символа;
3) декодируют символ с одной или несколькими областями данных, начиная с последовательности действий, установленных на этапе, указанном в перечислении k);
4) если в текущей области данных закончили просмотр последнего пика и впадины, возвращаются в предыдущую область данных и продолжают поиск с этапа, указанного в перечислении d) 6) для следующего оставшегося пика и впадины в этой области данных;
j) находят области данных прямоугольного символа:
1) для каждой стороны L-образной структуры передвигают линию поиска, перпендикулярную этой стороне, от вершины угла L-образной структуры, осуществляя сканирование по длине другой стороны L-образной структуры, сохраняя линию поиска параллельной другой стороне L-образной структуры. Каждый раз, когда линия поиска сдвигается на один пиксель изображения, подсчитывают число переходов от черного к белому и от белого к черному, начиная и заканчивая подсчет с перехода от цвета стороны L-образной структуры к противоположному цвету. Подсчет переходов следует делать только тогда, когда линия поиска имеет те же самые цвета, что и две линии непосредственно выше и ниже (левее и правее) текущей, и отличается по цвету от предыдущей линии поиска, для которой такой подсчет делался. Строят график зависимости числа переходов T от расстояния X, на которое сдвигают линию поиска. Продолжают, пока линия не сдвинется на длину противоположной стороны L-образной структуры +10%;
2) для каждого направления рассматривают графики T, начиная с наименьших значений по оси X, с постепенным увеличением значений T по этой оси. Находят первое место, где значение ( - максимальное значение одной из двух величин - ноль и T - 1) станет меньше, чем 15% предшествующего местного максимума значения T, при условии, что значение T больше единицы. Увеличивают значение X, пока значение T не перестанет уменьшаться. Если в следующей точке значение T не увеличивается, увеличивают значение X еще раз. Отмечают это значение X как соответствующее впадине. Увеличивают значение X для поиска локального максимума до тех пор, пока T не начнет уменьшаться, и отмечают это значение X как соответствующее пику. Точку X посередине между X пика и X впадины отмечают как X линии убывания. Линия впадины в этой точке может формировать сторону символа или его области данных;
3) ищут чередующийся шаблон поиска для каждой области данных, как описано на этапе, указанном в перечислении e);
4) составляют примерную сетку модулей области данных символа, как описано на этапах, указанных в перечислениях i), g) и h);
5) если область данных не является надлежащим прямоугольным символом, формируют новый регион данных, используя следующие пики и впадины;
6) строят все добавочные области данных, как описано на этапе, указанном в перечислении i);
7) если удалось обнаружить правильную область данных или две области, пытаются декодировать символ, как описано на этапах, указанных в перечислениях k) и l). Если область(и) не удается декодировать, исключают эту(и) область-кандидат;
k) если число модулей данных является четным числом или символ имеет надлежащую прямоугольную форму, выполняют его декодирование, используя алгоритм исправления ошибок Рида-Соломона:
1) определяют модули данных в предполагаемых центрах сетки. Темный модуль соответствует единице, светлый модуль - нулю;
2) преобразуют группы по восемь модулей по определенным шаблонам кодовых слов в 8-битовые значения знаков символа;
3) выполняют процедуру исправления ошибок Рида-Соломона с полученными значениями знаков символа;
4) декодируют знаки символа в знаки данных в соответствии с установленными схемами декодирования;
l) если число модулей данных является нечетным числом, то декодируют символ, используя алгоритм сверточного кода исправления ошибок:
1) определяют модули данных в предполагаемых центрах сетки. Темный модуль соответствует единице, светлый модуль - нулю;
2) применяют черно-белую выравнивающую маску;
3) используя соответствующую таблицу расположения битов, преобразуют данные в двоичный поток;
4) затем применяют алгоритм сверточного кода исправления ошибок;
5) преобразуют битовый поток в знаки данных, используя соответствующую схему кодирования;
6) выполняют проверку правильности контрольной суммы CRC".



Вернуться в "Каталог нормативных документов"



 

Источник информации: https://internet-law.ru/documents/prod/prikaz/106/izmen_65863.html

 

На эту страницу сайта можно сделать ссылку:

 


 

На правах рекламы: