Введение 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 = {(xi5 у^)}П=1. Лишь затем возможен переход к решению поставленной задачи. К таким задачам можно отнести задачи распознавания объектов по их форме, поиск похожих изображений и анализ полученного контура с целью получения специфичной для конкретной предметной области информации.
Зачастую, прежде чем перейти к непосредственному решению задачи необходимо специальным образом подготовить контур, например провести генерализацию или сглаживание контура. Алгоритмы сглаживания применяются в случае, когда необходимо устранить шумы, например, при анализе контуров полученных из рентгеновских снимков [3]. Также, алгоритмы сглаживания используюся для придания контуру более эстетичного вида, например в картографии [9].
Достаточно распространена следующая классификация алгоритмов сглаживания [8]:
1. Алгоритмы аппроксимации. Результатом работы такого рода алгоритмов является математическая функция, описывающая геометрический характер сглаживаемой линии. Параметры полученной функции могут быть сохранены и затем использованы для воссоздания контурной линии на произвольном количестве точек.
2. Алгоритмы, использующие различные геометрические отношения между точками. Такие алгоритмы могут убирать ненужные точки из исходного контура и генерировать дополнительные.
3. Алгоритмы на основе усреднения точек. Результатом работы подобного рода алгоритмов является набор точек, размер которого остаётся неизменным. Значения координат точек сглаженного контура получается путём усредения координат соседних точек. Такие алгоритмы сглаживания относительно легко модифицировать.
Далее в работе под алгоритмами сглаживания будут иметься ввиду алгоритмы третьго типа.
В ходе работы были рассмотрены основные подходы к сглаживанию, приведены условия для оптимального применения тех или иных алгоритмов сглаживания. Были усовершенствованы навыки программирования на языке 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] JavaTM 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 JavaTM Tutorials. https://docs.oracle.com/javase/tutorial/tutorialLearningPaths.html