Введение 3
Постановка задачи 5
Обзор литературы 6
Глава 1. Реализация алгоритмов сглаживания 7
1.1. Алгоритм сглаживания по двум близко расположенным точкам 8
1.2. Алгоритм сглаживания по трём точкам с коэффициентом . 9
1.3. Алгоритм сглаживания по семи точкам с учётом углов ... 10
1.4. Фиксирование точек, не подлежащих сглаживанию 11
Глава 2. Анализ и сравнение 12
Выводы 20
Заключение 21
Список литературы 22
Приложение 23
Пример реализации алгоритма сглаживания 23
Одной из важных характеристик любого объекта на изображении является контур этого объекта, так как зачастую именно контур содержит ключевую для распознавания информацию. В связи с этим получило развитие такое направление в области обработки и анализа изображений, как контурный анализ, который охватывает методы выделения и описания контуров, их преобразования и анализа. Благодаря такому подходу, оказывается возможной работа системы в режиме реального времени за счёт сокращения количества вычислений [2].
Обязательным этапом любой системы анализа контурных линий является, конечно же, выделение самих контуров представленных на изображении объектов. В результате применения подобного рода алгоритмов получают представление контура в виде замкнутой ломаной линии, заданной упорядоченным набором точек C = {(xi,yi)}n=l. Лишь затем возможен переход к решению поставленной задачи. К таким задачам можно отнести задачи распознавания объектов по их форме, поиск похожих изображений и анализ полученного контура с целью получения специфичной для конкретной предметной области информации.
Зачастую, прежде чем перейти к непосредственному решению задачи необходимо специальным образом подготовить контур, например провести генерализацию или сглаживание контура. Алгоритмы сглаживания применяются в случае, когда необходимо устранить шумы, например, при анализе контуров полученных из рентгеновских снимков [3]. Также, алгоритмы сглаживания используются для придания контуру более эстетичного вида, например в картографии [9].
Достаточно распространена следующая классификация алгоритмов сглаживания [8]:
1. Алгоритмы аппроксимации. Результатом работы такого рода алгоритмов является математическая функция, описывающая геометрический характер сглаживаемой линии. Параметры полученной функции могут быть сохранены и затем использованы для воссоздания контурной линии на произвольном количестве точек.
2. Алгоритмы, использующие различные геометрические отношения между точками. Такие алгоритмы могут убирать ненужные точки из исходного контура и генерировать дополнительные.
3. Алгоритмы на основе усреднения точек. Результатом работы подобного рода алгоритмов является набор точек, размер которого остаётся неизменным. Значения координат точек сглаженного контура получается путём усреднения координат соседних точек. Такие алгоритмы сглаживания относительно легко модифицировать.
Далее в работе под алгоритмами сглаживания будут иметься ввиду алгоритмы третьего типа.
Постановка задачи
Задача данной работы заключается в том, чтобы реализовать алгоритмы сглаживания, сравнить и проанализировать результаты работы этих алгоритмов.
Обзор литературы
Базовые алгоритмы и понятия для основных направлений в области обработки и анализа цифровых изображений представлены в [1]. Эта книга охватывает множество алгоритмов, среди которых алгоритмы улучшения, восстановления, сжатия и сегментации изображений. Несмотря на то, что контурному анализу уделено недостаточно внимания, всё же книга даёт тот фундамент, без которого невозможно дальнейшее плодотворное изучение этого направления.
Более узко специализированным научным трудом является [2]. Однако, в этой книге рассматриваются алгоритмы для комплексозначного представления контура, в котором точка задаётся комплексным числом а + ib, где а - это смещение вдоль оси х от фиксированной начальной точки, а b - смещение по у. В связи с этим, книга оказалась полезной лишь с точки зрения основных идей и подходов работы с контурными линиями.
В статье [8] Mansouryar и Hedayati предлагают алгоритм сглаживания, в основе которого, как и в алгоритмах, изложенных в данной работе, лежит фильтр скользящего среднего. Более, того в этой статье представлены классификация и краткий обзор различных подходов к сглаживанию.
Также, в статье [5] предлагается алгоритм устранения шумов из контуров печатных букв для дальнейшего их использования в алгоритмах распознавания. Однако, предложенный метод является специфичным и в общем случае сильно уступает другим подходам.
Hobby в статье [4] предлагает алгоритм сглаживания, похожий на описанный в параграфе 1.1 данной работы. Основное отличие алгоритма Hobby от представленного в этой работе заключается в том, что алгоритм Hobby использует представление контура в виде фиксированной точки (х0,уо) и отрезков e = (б, d), где б - длина отрезка, d - направление этого отрезка.
В ходе работы были рассмотрены основные подходы к сглаживанию, приведены условия для оптимального применения тех или иных алгоритмов сглаживания. Были усовершенствованы навыки программирования на языке Java и работы с IntelliJ IDEA. Также был получен опыт построения графических интерфейсов.
Результатом работы является программное обеспечение с графическим интерфейсом, предназначенное для применения рассмотренных алгоритмов сглаживания.
[1] Гонсалес Р., Вудс Р. Цифровая обработка изображений. М.: Техносфера, 2005. 1072 с.
[2] Фурман Я.А., Кревецкий А. В., Передреев А. К., Роженцев А. А., Хафизов Р. Г., Егошина И. Л., Леухин А. Н. Введение в контурный анализ и его приложения к обработке изображений и сигналов. Изд. 2-е, испр. М.: Физматлит, 2003. 592 с.
[3] Feudjio C. K., Tiedeu A., Noubeg M.-L., Gordan M., Vlaicu A., Domngang
S. Extracting and smoothing contours in mammograms using Fourier descriptors // Biomedical Science and Engineering, 2014. No. 7. P. 119-129.
[4] Hobby J. D. Smoothing Digitized Contours // Theoretical Foundations of Computer Graphics and CAD, Springer Berlin Heidelberg, 1988. P. 777-793.
[5] Hu J., Yu D., Yan H. Structural Boundary Feature Extraction for Printed Character Recognition // Advances in Pattern Recognition: Joint IAPR International Workshops, SSPR’98 and SPR’98, Sydney, Australia, August
11- 13, 1998, Proceedings, P. 500-507
[6] IntelliJ IDEA 2016.1 Help
https://www.jetbrains.com/help/idea/2016.1/meet-intellij-idea.html
[7] Java™ Platform, Standard Edition 8 API Specification https://docs.oracle.com/javase/8/docs/api/index.html
[8] Mansouryar M., Hedayati A. Smoothing Via Iterative Averaging (SIA) A Basic Technique for Line Smoothing // International Journal of Computer and Electrical Engineering, 2012. Vol. 4, No. 3. P. 307-311.
[9] Shea K. S., McMaster R. B. Cartographic Generalization in a Digital Environment: When and How to Generalize // Proceedings of the International Symposium on Computer-Assisted Cartography, 1989. P. 56 - 67.
[10] The Java® Language Specification. https://docs.oracle.com/javase/specs/jls/se8/html/index.html
[11] The Java™ Tutorials
https://docs.oracle.com/javase/tutorial/tutorialLearningPaths.html