- •Обзор предметной области
- •Способы перевода цветного изображения в полутоновое
- •Методы бинаризации
- •Способы сегментации
- •Способы распознавания.
- •2. Постановка задачи
- •3. Адаптация и описание используемых алгоритмов
- •3.1 Перевод цветного изображения в полутоновое rgb(yuv)
- •3.1 Бинаризация пороговым методом и методом 120
- •3.2 Сегментация строк и промежутков между словами и буквами методом гистограмм
- •3.3 Сегментация слов и букв методом мод
- •3.4 Попиксельное итеративное утоньшение бинарного изображения
- •3.5 Распознавание
- •4. Программная реализация
- •4.1 Схема программного обеспечения
- •4.2 Описание функций и методов
- •4.3Тестирование и руководство для пользователя
3. Адаптация и описание используемых алгоритмов
3.1 Перевод цветного изображения в полутоновое rgb(yuv)
Для перевода цветного изображения, получаемого с экрана смартфона в полутоновое, был выбран метод перевода в систему YUV, которая позволяет достоверно и легко без существенных потерь выделить интенсивность пикселя, что и необходимо для полутонового изображения.
Диапазоны изменения входных и выходных величин этого способа первода следующие:
величина Y – интенсивность, может принимать значения в диапазоне [0, 255];
величина U – в диапазоне [-0.436, 0.436];
величина V – в диапазоне [-0.615, 0.615].
Преобразование RGB в YUV осуществляется по следующему принципу:
tYUV = { (0.299 R + 0.587 G + 0.114 B), (- 0.14713 R + 0.28886 G + 0.436 B), (0.615 R + 0.51499 G + 0.10001 B) }
Если учесть, что в данной задаче необходима только интенсивность, то достаточно применить одну формулу:
Y = 0.299 R + 0.587 G + 0.114 B.
Полученная интенсивность Y и принимается за яркость каждого пикселя в полутоновом изображении.
После проделанного можно приступать к бинаризации любым из выбранных методов.
3.1 Бинаризация пороговым методом и методом 120
В рамках данного проекта были реализованы два алгоритма бинаризации: по порогу (с возможностью автоматического выбора порога по умолчанию 128) и метод 120.
Пороговый метод
Если значения объектов и фона достаточно однородны, то можно использовать одно пороговое значение для всего изображения (глобальное). В этом случае задается значение яркости, которое выступает в качестве порога. Все пиксели полутонового изображения обращаются в 1, если их яркость меньше порога, остальные 0:
Пользователь вводит порог t от 0 до 255. Далее интенсивность каждого исследуемого пикселя вычисляется по формуле:
где f(m,n)- яркость пикселя на исходном изображении,
f'(m,n) - яркость пикселя на новом изображении,
t - пороговое значение.
Рисунок 3.1.1 – Бинаризация пороговым методом (порог 128).
В программе также реализован метод бинаризации: «Метод 120».
Метод 120
Строится гистограмма изображения;
По построенной гистограмме определяется максимальный уровень серого в диапазоне от 0 до 120 включительно;
Черный цвет присваивается тем пикселям, у которых значение яркости меньше либо равно значению, полученному на втором этапе плюс 12..15.
Рисунок 3.1.2 – Бинаризация методом 120 (порог 119)
Следует отметить, что при использовании различного метода бинаризации а также различного порога можно получить немного разные результаты, которые могут оказаться существенными при утоньшении изображения, а в дальнейшем повлиять на результаты распознавания.
3.2 Сегментация строк и промежутков между словами и буквами методом гистограмм
Для определения строк текста необходимо найти части гистограммы с количеством черных пикселей больше нуля.
Для этого составляется гистограмма количества черных пикселей в каждой однопиксельной строке изображения, после чего обрабатывается гистограмма и сохраняются координаты строк
Рисунок 3.2.1 – Гистограмма строк.
Зная координату по вертикали и общие размеры изображения, мы можем выделить область, содержащую строку со словами.
Другим вариантом является построение гистограммы количества белых пикселей между ближайшими черными, которую в дальнейшем можно использовать для сегментации отдельных букв и слов.