Метод коррекции контура шрифтового знака для выводных устройств с низким разрешением, страница 3
Описание файла
PDF-файл из архива "Метод коррекции контура шрифтового знака для выводных устройств с низким разрешением", который расположен в категории "". Всё это находится в предмете "технические науки" из Аспирантура и докторантура, которые можно найти в файловом архиве МПУ. Не смотря на прямую связь этого архива с МПУ, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "диссертации и авторефераты" в общих файлах, а ещё этот архив представляет собой кандидатскую диссертацию, поэтому ещё представлен в разделе всех диссертаций на соискание учёной степени кандидата технических наук.
Просмотр PDF-файла онлайн
Текст 3 страницы из PDF
Значительные расхождения свидетельствует об искажении или нарушении пропорций в начертаниизнака (утолщение штрихов, их слиянии и т.п.). Для устранения этого дефектапредлагается следующий метод. Вместо того, чтобы изменять элементы контуразнака, добиваясь уменьшения искажений при растрировании с заданным шагомрастеризации, будем изменять параметры растровой сетки так, чтобы минимизировать отклонения положения контрольных точек от исходных значений.Для этого, во-первых, можно сделать растровую сетку подвижной, то естьспособной перемещаться вдоль координатных осей, а во-вторых, сделать ее сжимаемой или растяжимой по осям координат.11Тогда последовательность действий будет следующей.
Получив растровоеизображение знака, определим характер искажений: визуально – путем сравнениярастрового изображения с исходным контуром и количественно – путем вычисления смещений координат контрольных точек. Затем изменим параметры растровой сетки так, чтобы искажения уменьшились. При этом, возможно, потребуется несколько итераций. После нахождения оптимальных величин измененияпараметров растровой сетки необходимо вернуть их исходные значения и изменить параметры контура знака, подвергнув соответствующим преобразованиямопорные точки контура.
Растрирование нового контура знака с изначально заданной растровой сеткой даст аналогичный результат.Рассмотрим на координатной плоскости прямоугольную область F, разбитую на ячейки размером h х h вертикальными x = hi, i = 1, 2, … , n и горизонтальными y = hj, j =1, 2, … , n линиями (рис.3, а).Поставим в соответствие этой области числовой массив A(i, j) размером n хn.
Элемент массива A(k, m) соответствует ячейке, координаты внутренних точеккоторой удовлетворяют неравенствам h(k – 1) < x < hk и h(m – 1) < y < hm.Равный нулю элемент соответствует ячейке белого цвета, а равный единице– черного. Другими словами, массив А является битовой картой черно-белогоизображения на данной области с разрешением h.Построим еще одну прямоугольную область G, так же разбитую на ячейкино с большим размером HxH, нижний левый угол которой сдвинут относительноначала координат по оси Ox на величину x0, и по оси Oy на величину y0 (рис. 3, б).а)б)Рис.
3. Области для отображения черно-белого изображенияс высоким (а) и низким (б) разрешениемПронумеруем горизонтальные ряды ячеек области снизу вверх и вертикальные ряды слева направо числами от 1 до N. Так же, как и в первом случае,поставим в соответствие ячейкам области G числовой массив B(i, j) размеромNxN так, чтобы выполнялось условие: если B(i, j) = 1, то ячейка, находящаяся напересечении i-го столбца и j-го ряда, закрашена черным цветом, а если B(i, j) = 0,12то белым.
Таким образом, массив В можно трактовать как битовую карту изображения в области G, а ячейки этой области как элементы этого изображения(пиксели).Допустим, что задано векторное описание контура знака как множестваопорных точек графических примитивов (отрезков прямых и кубических кривых). Используя какой-либо алгоритм заливки контура можно отобразить этотзнак в области F и получить его представление в виде битовой карты А.Положив равными нулю смещения x0, y0 области G относительно началакоординат (см. рис. 3), закрасим те ячейки области G, которые имеют общие точки (x, y) с уже закрашенными ячейками области F и заполним числовой массив Взначениями 0 и 1 в соответствии с приведенным выше правилом.Следующим шагом является вычисление координат центров тяжести получившихся изображений знака в областях F и G.Для определения координат центра тяжести построенной в области F фигуры воспользуемся формулами для системы материальных точек:nxc1 nnx Ai 1niijj 1n, Ayc1 iji 1 j 1ny Aj 1njiji 1n, A(4)iji 1 j 1где xi, yj – координаты ячейки, находящейся в j-ом ряду и i-ом столбце.Аналогично для фигуры в области G:Nxc 2 NNx Bi 1Niijj 1N Bi 1 j 1ij,yc 2 N y Bj 1Njiji 1N Bi 1 j 1,(5)ijгде xi, yj – координаты ячейки, находящейся в j-ом ряду и i-ом столбце.Вычислим разности соответствующих координат по осям Ox и Oy:x = xc2 – xc1 , y =yc2 – yc1.(6)Сдвинем область G по координатным осям, положив x0=x, y0=y, после чего очистим ячейки области G и повторим процедуру закрашивания описаннымвыше способом.Вычислив новые координаты центра тяжести по формуле (5) можно убедиться, что они близки к соответствующим координатам фигуры из области F.Очевидно, что этот же результат можно получить, сдвигая по осям координат не область G, а опорные точки контура исходного знака на величины –x и–y.
Как было отмечено ранее, при этом весь контур знака переместится параллельно осям координат без искажений.13Однако улучшить изображение знака одним сдвигом растровой решеткиудается не всегда. В качестве примера на рис.4 приведены растровые изображения знака с тремя вертикальными линиями.
Центры тяжести в обоих случаях совпадают с центром исходного знака, однако искажения есть: в первом случае более толстыми оказываются крайние линии, во втором – средняя.Рис. 4. Случай, когда сдвигом решетки не удается устранить искаженияДальнейшие улучшения формы знака может быть достигнуто с помощьюсжатия или растяжения контура знака по координатным осям.С этой целью на этапе предварительной обработки кроме основного центратяжести фигуры знака вычисляются координаты дополнительных точек (см. рис.
2).По формулам, аналогичным (4) и (5) можно вычислить координаты этиххарактерных точек сначала при высоком разрешении (с шагом h), затем при низком (с шагом H).Для устранения имеющихся искажений необходимо сравнить взаимноерасположение характерных точек в первом и втором случаях, затем выполнитьоперации сжатия или растяжения координатной сетки по одной из осей или одновременно по обеим.В частности, в табл.1 приведены результаты расчетов координат центровтяжести (ЦТ) для приведенных выше примеров растрирования буквы Ш (см.рис.4, слева). Высота знака L=0.75, ширина S=0.8, шаг сетки Hx = Hy = 0.05.Табл.1. Координаты центров тяжести фигурыдо и после растрированияИсходный знакТочки ЦТПосле растрированияОтклонениеYрXи – XрYи – Yр0.5000.4430.000-0.0090.6410.7140.6460.014-0.0050.7110.2430.7060.2510.005-0.008P30.2880.2430.2930.251-0.005-0.008P40.2710.6410.2850.646-0.014-0.005XиYиXрP00.5000.434P10.728P2Из таблицы видно, что средневзвешенная сумма отклонений координатцентров по оси Х равна нулю.
При этом расстояние между центрами в верхнейчасти знака (точки P1 и P4) при растрировании уменьшается на 0.028 единиц, то14есть x= – 0.028. Отсюда можно сделать вывод о том, что для устранения искажений необходимо увеличить шаг сетки по оси Х. Коэффициент изменения шагарассчитывается по формуле kx = 1 –x/dx, где dx – расстояние по оси Х между центрами P1 и P4. В данном случае kx = 1 + 0.028/0.429 1.07.Повторное растрирование с новым шагом Hx = 0.05*kx =0.054 дает приемлемый результат: все штрихи буквы Ш имеют одинаковую ширину.В соответствии со сказанным выше, этот же результат можно получить, изменяя не шаг растровой сетки, а внеся соответствующие изменения в описаниеконтура знака. Для этого необходимо пересчитать координаты опорных точекконтура по формулам:X ' j X 0 X C ( X j X C ) / k x ,Y ' j Y0 YC (Y j YC ) / k y ,(7)где j – номер опорной точки с координатами Xj, Yj, j = 1,2,…, N; X0, Y0 – величина сдвига по осям координат, XС, YС – координаты центра тяжести знака, Xk, Yk– новые координаты опорных точек векторного описания, kx, ky – коэффициентыизменения шага по осям.Таким образом, моделирование процесса растрирования состоит из следующих этапов:1.
По заданному описанию контуров знака выполняется первоначальноерастрирование с шагом h и формируется массив A с битовой картой изображения.2. Вычисляются координаты центра тяжести фигуры знака XС, YС и центровтяжести четырех участков знака, на которые последний делится прямыми, параллельными осям координат и проходящими через точку XС, YС.3. Формируется растровая сетка с шагом HхH и формируется двумерныйчисловой массив В, элементам которого присваиваются значения, равные количеству пикселей изображения, попадающих в соответствующую ячейку растровой сетки.4.
Вычисляются координаты центра тяжести фигуры, получившейся в результате растрирования XP, YP и центров тяжести четырех участков знака, на которые последний делится прямыми, параллельными осям координат и проходящими через точку XP, YP.5. Сдвигом растровой сетки HхH на величины X0 и Y0 минимизируетсярасстояние между центрами тяжести исходного изображения XС, YС и растрированного XP, YP.6. Если отклонения между координатами центрами тяжести четырех частейисходного изображения и изображения после растрирования меньше заданнойвеличины ε, то переход к следующему пункту, иначе по значениям отклонений15вычисляются коэффициенты kx и ky, шаг растровой сетки по осям изменяется иосуществляется переход к п.4.7. По найденным значениям X0, Y0, kx, ky, координаты опорных точекконтурного описания контура знака пересчитываются по формулам (7).НачалоПараметрыконтура знакаПостроениеконтура изаливкаПараметрырастровойсетки Hx, HyВычислениепараметровXi Yi, i = 0,…,5Растрированиеи вычислениепараметровXi*, Yi*, i = 0,…,5Вычислениемерыотклонения DнетВычислениекоэффициентовΔX0, ΔY0, kx, kyN>3даРешения нетнетD<εдаПересчётпараметровконтура знакаКонецРис.