- •Введение
- •1. Обзор предметной области
- •1.1 Методы бинаризации
- •1.2 Способы сегментации
- •1.3 Способы распознавания
- •2. Постановка задачи
- •3. Адаптация и описание используемых алгоритмов
- •3.1 Сегментация изображения методом выделения краев
- •3.2 Бинаризация пороговым методом
- •3.3 Выделение контуров (метод «Жук»)
- •3.4 Распознавание
- •4. Программная реализация
- •4.1 Схема программного обеспечения
- •4.2 Описание функций и методов
- •4.3 Тестирование и руководство для пользователя
- •15 Заключение
- •16 Литература
2. Постановка задачи
Целью курсового проекта является разработка приложения, позволяющего распознать такие обозначения сборочного чертежа как вид и габаритные размеры на сканированном изображении чертежа. Приложение реализовано в среде MS Visual Studio на языке C#.
Входные данные:
- Сканированное изображение чертежа *.bmp
Ограничения:
- Никакого лишнего фона у изображения быть не должно;
- На изображении не должно быть шумов, точек, пикселей и т.п., не имеющих отношения к распознаваемой части;
- Размер изображения 1:1 (3509х2550).
Выходные данные: вид чертежа и габаритные размеры.
При выполнении курсового проекта необходимо решить следующие задачи по обработке изображения:
- Загрузка изображения;
- Сегментация изображения методом выделения краев;
- Бинаризация областей пороговым методом с порогом по умолчанию = 175;
- Выделение контуров (метод «Жук»);
- Центрирование контуров;
- Распознавание обозначений чертежа (буквы и цифры).
На основании этого были построены функциональные схемы приложения, в формате IDEF приведены на рисунках 1 и 2. IDEF схема 3 уровня построена для сегментации изображения методом выделения краев и центрирования контуров.
9
3. Адаптация и описание используемых алгоритмов
3.1 Сегментация изображения методом выделения краев
Для нахождения области распознавания нам необходимо найти линию и выделить область над ней.
Для этого мы идем с середины изображения снизу вверх и считаем количество перепадов, если это количество соответствует заданному – это нужная линия, а значит выделяем область над этой линией.
Рисунок 3.1 – Сегментация изображения.
Зная координату по вертикали и общие размеры листа, мы можем приблизительно выделить область, содержащую габаритный размер. Результат сегментации приведен на рисунке 3.2.
Рисунок 3.2 – Сегментация изображения.
3.2 Бинаризация пороговым методом
В рамках данного проекта был реализован алгоритм бинаризации пороговым методом.
Если значения объектов и фона достаточно однородны, то можно использовать одно пороговое значение для всего изображения (глобальное). В этом случае задается значение яркости, которое выступает в качестве порога. Все пиксели полутонового изображения обращаются в 1, если их яркость меньше порога, остальные 0.
Далее интенсивность каждого исследуемого пикселя вычисляется по формуле: где f(m,n) - яркость пикселя на исходном изображении, f'(m,n) - яркость пикселя на новом изображении, t - пороговое значение.
10
Результат бинаризации приведен на рисунке 3.3.
Рисунок 3.3 – Бинаризация пороговым методом (порог 175).
3.3 Выделение контуров (метод «Жук»)
"Жук" начинает движение с белой области по направлению к черной. Как только он попадает на черный элемент, он поворачивает налево и переходит к следующему элементу. Если этот элемент белый, то жук поворачивается направо, иначе - налево. Процедура повторяется до тех пор, пока жук не вернется в исходную точку. Координаты точек перехода с черного на белое и с белого на черное и описывают границу объекта. Результат оконтуривания приведен на рисунке 3.4.
Рисунок 3.4 – Выделение контура (метод «Жук»).