Реферат: Алгоритмы выделения контуров
Белорусский Государственный Университет Информатики и Радиоэлектроники.
Контрольная работа
по дисциплине
«МАТИ»
Выполнил студент группы 500501
Балахонов Е. В.
Алгоритмы выделения контуров.
Алгоритмы выделения контуров можно условно разбить на две группы: отслеживающие и сканирующие.
1. Отслеживающие алгоритмы на примере алгоритма «жука».
1.1 Общее описание алгоритма.
Отслеживающие алгоритмы основаны на том, что на изображении отыскивается объект (первая встретившаяся точка объекта) и контур объекта отслеживается и векторизуется. Достоинством данных алгоритмов является их простота, к недостаткам можно отнести их последовательную реализацию и некоторую сложность при поиске и обработке внутренних контуров. Пример отслеживающего алгоритма - "алгоритма жука" - приведен на рис. 5.12. Жук начинает движение с белой области по направлению к черной, Как только он попадает на черный элемент, он поворачивает налево и переходит к следующему элементу. Если этот элемент белый, то жук поворачивается направо, иначе - налево. Процедура повторяется до тех пор, пока жук не вернется в исходную точку. Координаты точек перехода с черного на белое и с белого на черное и описывают границу объекта.
На рис. 1 показана схема работы такого алгоритма.
Рис. 1. Схема работы отслеживающего алгоритма «жука».
1.2 Создание программы, реализующий данный алгоритм.
Данная программа реализована в среде программирования Borland C++ Builder 4.
Общий вид главного окна программы в исходном положении показан на рис. 2.
Рис. 2. Главное окно программы в исходном положении.
Слева находится исходное изображение, справа находится изображение на котором будут рисоваться выделяемые контуры объекта.
Исходные тексты формы представлены в листинге 1.
В листингах 2 и 3 находятся исходные тексты главного модуля программы и модуля главной формы.
В листинге 4 представлен модуль, содержащий в себе функции выделения контуров объектов.
На рис. 3 можно увидеть результат работы алгоритмов выделения контуров.
Рис. 3. Результат работы отслеживающего алгоритма выделения контуров.
2. Сканирующие алгоритмы.
2.2. Общее описание алгоритма.
Сканирующие алгоритмы основаны на просмотре (сканировании) всего изображения и выделения контурных точек без отслеживания контура объекта.
Рассмотрим алгоритм, основанный на разработанной схеме хранения полосы изображения в памяти ЭВМ и нахождения контурных точек в процессе движения полосы по всему изображению. Для обработки информации в полосе различают два случая: выявление ситуации в полосе изображения и ее разрешение. В полосе одновременно хранятся две строки изображения (текущая и предыдущая). Анализируются Х координаты черных серий обеих строк в порядке их возрастания (слева направо) и выявляются пять ситуаций, которые могут возникнуть.
Ситуация "начало" возникает в том случае, когда черная серия текущей строки полностью покрывается белой серией предыдущей строки (рис. 4, а).
Для ситуации "продолжение" характерно частичное перекрытие черных серий обеих строк (рис.4,б).
Если две соседние черные серии текущей строки покрываются черной серией предыдущей строки, возникает ситуация "ветвление"(рис. 4, в).
Ситуация "слияние" выявляется в том случае, когда черная серия текущей строки касается двух соседних черных серий предыдущей строки (рис.4, г).
Ситуация "конец" возникает, когда белая серия текущей строки полностью покрывает черную серию предыдущей строки (рис.4, д).
--> ЧИТАТЬ ПОЛНОСТЬЮ <--