Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гришкин / 23-24. Обработка изображений.ppt
Скачиваний:
31
Добавлен:
16.04.2015
Размер:
773.12 Кб
Скачать

Обработка изображений

Определение угла поворота изображения страницы текста

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

Обработка изображений

Идея алгоритма

Если смотреть на страничку с текстом издали, то строчки видятся темными параллельными полосками, а промежутки между ними - светлыми. Направление этих полосок ищется так.

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

.

Обработка изображений

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

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

Более подробное описание алгоритма

Предполагается, что черно-белое изображение текста представляет собой двумерный массив пикселей размеромI , гдеmкаждыйn пиксель имеет определенную яркость vi, j. Яркость пикселя может изменяться в пределах от 0 до 255, то есть от черного до белого. Промежуточные значения соответствуют различным оттенкам серого. Среднее значение яркости для всего изображения будет

vs (I ) 1 m n vi, j

mn i 1 j 1

Обработка изображений

Массив

I разбивается построчно на

m одномерных массивов Li

длиной n

 

Для каждого одномерного массива можно посчитать среднее значение яркости

 

 

vsi (Li ) 1

n

 

 

 

vi, j

 

 

 

n

j 1

 

 

 

 

 

V

С другой стороны, массив I разбивается по столбцам на n одномерных массивов ,

j

длиной

m

 

 

 

Точно также можно получить средние значения яркости по столбцам

vsj (V j ) 1 m vi, j

m i 1

Если строчки текста расположены строго горизонтально, то очевидно среди Liбудут

попадаться такие, которые приходятся на междустрочные промежутки, и среднее значение яркости которых существенно превышает среднее значение всего массива. Наоборот, средние значения яркости вертикальных столбцов V j ,будут отличаться значительно меньше от среднего значения vs (I ) , поскольку каждый столбец пересекает как строчки, заполненные буквами, так и междустрочные промежутки

Обработка изображений

Исключения составляют столбцы, которые проходят по вертикальным полям страницы справа и слева. Такие столбцы полезно было бы исключить из рассмотрения для повышения надежности алгоритма. Например можно исключать крайние столбцы (а также и строки), начиная от краев и продвигаясь к середине страницы до тех пор, пока яркость столбца vsj (Vj ) или строки vsi (Li )

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

Найдем среднее квадратичное отклонение (дисперсию) средней яркости каждой

строчки и столбца от среднего значения всего массива

vs (I )

 

 

1

 

m

 

dL

 

 

(vsi (Li ) vs (I ))2

 

 

 

 

 

m i 1

 

 

1

n

 

dV

(vsj (Vj ) vs (I ))2

 

 

 

n

j 1

 

Обработка изображений

При строго горизонтальном расположении строк, очевидно,

dL dv

Теперь допустим, что строчки текста расположены под некоторым углом к горизонтали. В этом случае, если ввести в рассмотрение величину

d dL dv

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

Обозначим угол наклона строк текста к горизонтали за

и будем искать этот угол

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

.

Проведем

x

параллельные прямые l i ( 0 )

, отстоящие друг от друга на расстояние x , и

наклоненные к горизонтали на некоторый небольшой угол

0

. А

перпендикулярно этим прямым проведем другие прямые

 

lvi ( 0

.) Значение

угла 0 не должно быть большим, например его можно сделать таким, чтобы

каждая прямая l i ( 0 ) пересекала не более трех рядов пикселей, то есть

tg 0

2x / n

 

 

 

 

 

.

 

 

 

 

Обработка изображений

Теперь составим одномерные массивы

 

 

из пикселей, пересекаемых каждой

соответствующей прямой линией

 

lLi (i 0 ), а массивы V j из пикселей,

пересекаемых прямыми

lvi ( 0 )

 

. Очевидно, что каждый из таких массивов

будет иметь размер, отличный от

n

и m . Обозначим размеры массивов Li

и V j за ni

и

m j соответственно

 

 

 

.

 

 

На рис. показаны две прямые: одна - с

 

 

небольшим углом наклона, другая - с углом

 

 

 

 

 

 

приближающимся к вертикали.. Поиск

 

 

 

пересекаемых пикселей для прямой, близкой к

 

 

 

горизонтали (то есть той, у которой тангенс угла

 

 

 

наклона меньше единицы) происходит так. От

 

 

 

начального пиксела происходит пересчет

 

 

 

пикселов вправо от 1 до k , где k такое, что

 

 

 

 

x

 

 

 

tg 0

x

 

 

 

 

 

k 1

k

 

 

 

 

 

Как только такое

k

найдено, считаем, что прямая вышла из первого ряда пикселей

на пикселе номер k .

 

 

 

 

 

 

 

 

Обработка изображений

После этого перебираем пиксели во втором ряду от k до k1 , где k1 удовлетворяет

условию

 

 

 

 

2x

 

tg 0

 

2x

 

k1 1

k1

 

 

 

На пикселе номер k1 прямая выходит из второго ряда. И так далее, пока не дойдем до правого края изображения .

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

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

 

 

 

1

n

 

 

1

m

vsi (Li )

i vi, j

vsj (V j )

i vi, j

ni

 

 

 

 

j 1

 

 

mi i 1

 

1

m

 

 

 

 

 

n

d L ( 0 )

i 1 (vsi (Li ) vs (I ))2

dV ( 0 ) 1n j 1 (vsj (V j ) vs (I ))2

m

Обработка изображений

Вычислим также разность дисперсий в этом случае

d ( 0 ) d L ( 0 ) dv ( 0 )

Далее будем последовательно вычислять разность дисперсий d ( l ) для различных

углов наклона прямых l l 0 , где

l

900 .

Рассчитав эти разности для всех углов, найдем

l соответствующее максимальному

значению d ( l )

. Очевидно, что искомый угол имеет значение, близкое к

значению угла l

. То есть

 

 

l 1 l 1

Чтобы уточнить значение угла a можно повторить этот алгоритм на отрезке от

до

l 1

с меньшим

шагом.

 

 

l 1

 

сколь угодно близко. На

Таким образом можно приблизиться к значению угла

деле допустимой погрешностью, вероятно, будет погрешность, не превышающая угол, тангенс которого равен 1/ max(m, n) .

Обработка изображений

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

Нахождение графических примитивов

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

Преобразование Хафа позволяет находить на монохромном изображении плоские кривые, заданные параметрически, Монохромным изображением считается изображение, состоящее из точек двух типов: фоновых точек и точек интереса . Задача преобразования Хафа состоит в выделении кривых, образованных точками интереса. К монохромным изображениям можно отнести бинарные изображения. Еще одним примером монохромных изображений, являются градиентные изображения, полученные с помощью различных операторов выделения краёв (края – точки резкого изменения яркости соседних пикселей)