Вы находитесь на странице: 1из 7

P.Rajashekar Reddy et al, / (IJCSIT) Международный журнал компьютерных наук и информационных технологий, Vol. 3 (3), 2012 г.

, 388-3894

Оценка критерия остановки в контуре


Алгоритмы трассировки
П. Раджашекар Редди, В. Амарнад, Мекала Бхаскар

Департамент CSE, Группа учреждений Anurag,


Инженерный колледж CVSR, Йодиметла, Гхатакесар, Хайдарабад, AP, Индия

Абстрактный - В условиях быстрого движения, изменения формы и частичного


перекрытия цели, в настоящее время в основном алгоритмы трассировки затрудняют
получение точного контура цели, для этих проблем предлагается новый алгоритм
трассировки контура, основанный на фильтре частиц и быстром наборе уровней.
Во-первых, алгоритм фильтрации частиц применяется для оценки контура границы
движущейся цели. Затем, в соответствии с методом определения ближайшего соседа,
находится новая функция скорости набора быстрого уровня, сильной стороной
которой является то, что алгоритм отслеживания подходит для изменения цели и фона.
Наконец, отслеживание контура реализуется путем построения кривых установки
нулевого уровня с использованием алгоритма быстрой установки уровня.
Рисунок 1 фигура 2
Эксперименты с репрезентативными последовательностями изображений показывают,
что этот алгоритм может отслеживать жесткий и нежесткий целевой контур в сложных
условиях. Результат показывает, что этот алгоритм является надежным и точным по
сравнению с другими алгоритмами трассировки.

Оценка алгоритмов отслеживания контуров и того, как критерии начала и остановки


используются в различных алгоритмах отслеживания контуров. Сконцентрирован,
чтобы показать критерии остановки, и какие критерии лучше всего подходят для поиска
контура пикселей изображения и сравнения различных критериев остановки.
Полученные контуры можно использовать для создания 3D-реконструкций.

В двоичном цифровом изображении пиксель может иметь значение 1 - когда он


является частью рисунка - или 0 - когда его часть фона - то есть нет уровня градаций
Ключевые слова: топографическая карта, контурная линия, трассировка, окрестности
серого. Чтобы идентифицировать объекты в цифровом шаблоне, нам нужно найти
Мура, цифровая карта высот (DEM).
группы черных пикселей, которые «связаны» друг с другом. Другими словами,
объекты в данном цифровом шаблоне являются связанными компонентами этого
Я. ВСТУПЛЕНИЕ
шаблона. В общем, связанный компонент - это набор черных пикселей P, такой, что
Ниже приведены четыре наиболее распространенных алгоритма
для каждой пары пикселей pi и pj в P существует последовательность пикселей pi, ...,
отслеживания контуров. Первые два, а именно: алгоритм Square Tracing
pj такая, что: a) все пиксели в последовательности находятся в наборе P, т.е.
и Moore-Neighbor Tracing, легко реализовать и поэтому часто
являются черными, и б) каждые 2 пикселя, которые смежны в последовательности,
используются для отслеживания контура заданного шаблона. К
являются «соседями», поскольку мы используем квадратные пиксели, ответ на
сожалению, оба этих алгоритма имеют ряд недостатков, из-за которых
предыдущий вопрос нетривиален. Причина в следующем: в квадратной тесселяции
они провал в прорисовке контура большого класса паттернов благодаря
пиксели либо имеют общую кромку, либо вершину, либо ни то, ни другое. Есть 8
их особому виду связности.
пикселей, разделяющих край или вершину с любым заданным пикселем; эти пиксели
составляют окрестность Мура этого пикселя. Следует ли рассматривать пиксели,
Следующие алгоритмы игнорируют любой " дыры " присутствует в выкройке.
имеющие только общую вершину, в качестве «соседей»? Или 2 пикселя должны
Например, если нам дан шаблон, подобный шаблону Рисунок 1 ниже контур,
иметь общий край, чтобы их можно было считать «соседями»? Это приводит к 2
прорисованный алгоритмами, будет аналогичен изображенному на Фигура 2
типам связности, а именно: 4-связность и 8-связность. связность идентифицирована,
( синие пиксели представляют контур). Это может быть приемлемо в
тогда мы можем проследить контур изображения. в этой статье мы концентрируемся
некоторых приложениях, но в других приложениях, таких как распознавание
на алгоритме трассировки квадратов, алгоритме Мура-Соседства, алгоритме
символов, мы также хотели бы проследить внутреннюю часть рисунка, чтобы
Павлиди, алгоритме радиальной развертки эти пиксели составляют окрестность Мура
захватить любые дыры, которые идентифицируют определенный символ. ( Рисунок
этого пикселя. Следует ли рассматривать пиксели, имеющие только общую вершину,
3 ниже показан "полный" контур выкройки) В результате " поиск дыр "
в качестве «соседей»? Или 2 пикселя должны иметь общий край, чтобы их можно
было считать «соседями»? Это приводит к 2 типам связности, а именно: 4-связность и
8-связность. связность идентифицирована, тогда мы можем проследить контур
следует использовать алгоритм, чтобы сначала извлечь отверстия в заданном
изображения. в этой статье мы концентрируемся на алгоритме трассировки
шаблоне, а затем применить алгоритм отслеживания контура к каждому отверстию,
квадратов, алгоритме Мура-Соседства, алгоритме Павлиди, алгоритме радиальной развертки эти пиксе
чтобы извлечь полный контур.
Первые два алгоритма игнорируют любые «дыры» в шаблоне. Это может
быть приемлемо в некоторых приложениях

3888
P.Rajashekar Reddy et al, / (IJCSIT) Международный журнал компьютерных наук и информационных технологий, Vol. 3 (3), 2012 г., 388-3894

но в других приложениях, таких как распознавание символов, мы также Вход: квадратная мозаика, Т, содержащий компонент связности п черных
хотели бы проследить внутреннюю часть шаблона, чтобы захватить любые клеток.
дыры, которые идентифицируют определенный символ. В результате Выход: последовательность B (b 1, б 2, ..., б л) граничных пикселей, т.е. контура.
следует использовать алгоритм «поиска отверстий», чтобы сначала извлечь
отверстия в заданном шаблоне, а затем применить алгоритм отслеживания Начинать
контура к каждому отверстию, чтобы выделить полный контур. Идея • Набор B быть пустым.
трассировки Мура-Соседства проста; но прежде чем мы это объясним, нам • Снизу вверх и слева направо сканировать ячейки Т до черного
нужно определить важное понятие - окрестность пикселя по Муру. пикселя, с, из п находится.
• Вставлять s в Б.

• Установите текущий пиксель, п, быть начальным пикселем, с.


II. Алгоритм трассировки квадратов
• Поверните налево, т. Е. Посетите левый соседний пиксель п.
Идея алгоритма трассировки квадратов очень
• Обновлять п т.е. установить его как текущий пиксель. Пока п
просто; это может быть связано с тем, что алгоритм был одной из первых
• не равно s делать Если текущий пиксель п черный
попыток выделить контур двоичного паттерна. Чтобы понять, как это
работает, вам понадобится немного воображения ... Имея цифровой узор,
о вставлять п в B и поверните налево (пройдите налево
то есть группу черных пикселей на фоне белых пикселей, то есть сетку;
соседний пиксель п).
найдите черный пиксель и объявите его своим " Начните" пиксель. (Поиск
о Обновлять п т.е. установить его как текущий пиксель. еще
" Начните" пиксель можно сделать несколькими способами; мы начнем с
нижнего левого угла сетки, просканируем каждый столбец пикселей снизу
о поверните направо (посетите правый соседний пиксель
вверх, начиная с крайнего левого столбца и двигаясь вправо, пока не
п).
встретим черный пиксель. Мы объявим этот пиксель как наш " Начните" пиксель.)
о Обновлять п т.е. установить его как текущий пиксель. конец
А теперь представьте, что вы жук (божья коровка), стоящий на Начните пиксель
пока
как в Рисунок 4 ниже. Чтобы выделить контур узора, необходимо сделать
Конец
следующее:

Примечание: Понятие левого и правого в приведенном выше алгоритме


следует интерпретировать не по отношению к странице или читателю, а по
отношению к направлению входа в «текущий» пиксель во время
каждый раз, когда вы обнаруживаете, что стоите на черном пикселе, поворачивайте
выполнения сканирования.
налево, и каждый раз, когда вы обнаруживаете, что стоите на белом пикселе,
Демонстрация ::
поворачивайте направо, пока не встретите Начните снова пиксель. Черные пиксели,
Ниже приводится анимированная демонстрация того, как алгоритм
по которым вы прошли, будут контуром узора.
трассировки квадратов отслеживает контур заданного узора. Помните, что
вы - жук (божья коровка), идущий по пикселям; обратите внимание, как
меняется ваша ориентация при повороте влево или вправо. Повороты влево
и вправо выполняются относительно вашего текущего положения на
пикселе.
т.е. ваша текущая ориентация.

Рисунок 4

Важным моментом в алгоритме трассировки квадратов является Анализ


«чувство направления». Левая и правая повороты, которые вы делаете, Оказывается, алгоритм трассировки квадратов очень ограничен в своей

относятся к вашему текущему положению, которое зависит от того, как производительности. Другими словами, ему не удается выделить контур большого

вы ввели пиксель, на котором стоите. Поэтому важно следить за своей семейства шаблонов, которые часто встречаются в реальных приложениях. Это в

текущей ориентацией, чтобы делать правильные шаги. значительной степени связано с левым и правым поворотами, которые имеют
тенденцию пропускать пиксели, расположенные «по диагонали» относительно

Алгоритм: данного пикселя. Мы рассмотрим различные шаблоны различных подключений и

Ниже приводится формальное описание алгоритма трассировки квадратов: выясним, почему алгоритм трассировки квадратов дает сбой. Кроме того, мы
рассмотрим способы повышения производительности алгоритма.

3889
P.Rajashekar Reddy et al, / (IJCSIT) Международный журнал компьютерных наук и информационных технологий, Vol. 3 (3), 2012 г., 388-3894

и заставить его работать, по крайней мере, для шаблонов с особым видом связи. и Рисунок 5. ниже демонстрируют 2 вида " дыры " что могло произойти в
4-связном паттерне:
Критерий остановки: Одна слабость алгоритма отслеживания
квадратов заключается в выборе критерия остановки. Другими
словами, когда алгоритм завершается?

В исходном описании алгоритма трассировки квадратов критерием остановки


является посещение Начните пиксель во второй раз. Оказывается, алгоритм не
сможет построить контурную трассировку большого семейства паттернов, если он
будет зависеть от этого критерия.

Далее следует анимированная демонстрация, объясняющая, как алгоритм Рисунок 5. Рисунок 6


трассировки квадратов не может выделить контур узора из-за неправильного
выбора критерия остановки: Как видите, улучшение критерия остановки было Второе наблюдение
бы хорошим началом для улучшения общей производительности алгоритм Любые два черных пикселя рисунка ДОЛЖНЫ иметь одну сторону.
трассировки квадратов. Существуют 2 эффективных альтернативы Предположим, что 2 черных пикселя имеют общую вершину, тогда, чтобы
существующему критерию остановки: удовлетворить свойство 4-связности шаблона, должен быть путь,
связывающий эти 2 пикселя, так что каждые 2 соседних пикселя на этом
а) Остановитесь после посещения Начните пиксель п раз, где n не менее 2, ИЛИ b) пути являются 4-связными. Но это даст нам образец, похожий на тот, что в Рисунок
Остановить после ввода Начните пиксель во второй раз таким же образом, как вы 6 над. Другими словами, это приведет к отключению белых пикселей.
ввели его изначально. Этот критерий был предложен Якобом Элиозовым, поэтому
мы будем называть его Критерий остановки Иакова .

Рисунок 7 ниже показан типичный узор, удовлетворяющий предположению,


Изменение критерия остановки обычно улучшает производительность что пиксели фона и узора имеют 4 соединения, т. е. нет " дыры " и каждые 2
алгоритма трассировки квадратов, но не позволяет ему преодолеть черных пикселя имеют одну сторону:
другие недостатки, которые он имеет в отношении шаблонов особых
видов связи. Квадрат
Алгоритм трассировки не может отследить контур семейства 8-связанных
паттернов, которые НЕ являются 4-связными.
Ниже приводится анимированная демонстрация того, как алгоритм
трассировки квадратов (с критерием остановки Джейкоба) не может выделить
контур 8-связного паттерна, который не является 4-связным: Алгоритм
отслеживания квадратов совершенно бесполезен? Если вы прочитали
приведенный выше анализ, вы, должно быть, думаете, что алгоритм
трассировки квадратов не может выделить контур большинства паттернов.
Оказывается, существует особое семейство паттернов, которые полностью и
правильно отслеживают контур с помощью алгоритма отслеживания
квадратов. Позволять п быть набором четырех связанных черных пикселей на
сетке. Пусть белые пиксели сетки т. Е. Пиксели фона, W, также быть 4-связным. Рисунок 7

Оказывается, при таких условиях паттерна и его фона мы можем доказать, что Полезный способ изобразить такие узоры: Во-первых, рассмотрим граничные

алгоритм трассировки квадратов (с использованием критерия остановки Якоба) пиксели, т. Е. Контур узора. Затем, если мы рассмотрим каждый граничный

всегда будет успешно выделять контур паттерна. Следующее является пиксель как имеющий 4 ребра единичной длины, мы увидим, что некоторые из этих

доказательством того, что когда и узор, и фоновые пиксели соединены 4-мя ребер являются общими с соседними белыми пикселями. Мы назовем эти края, то

связями, алгоритм трассировки квадратов правильно извлечет контур узора есть те, которые разделяются с белыми пикселями, граничные края. Эти

при условии, что мы используем критерий остановки Джейкоба. граничные ребра можно рассматривать как ребра многоугольника.

Рисунок 8 ниже демонстрирует эту идею, показывая вам многоугольник,


соответствующий образцу в Рисунок 7 над:
Доказательство: Дано: Шаблон, П, таким образом, что как пиксели шаблона, то
есть черные пиксели, так и пиксели фона, то есть белые пиксели, W, являются
4-связанными.

Первое наблюдение Поскольку набор белых пикселей W считается


4-связным, это означает, что в шаблоне не может быть никаких " дыры " в
этом. (Неофициально " дыры " группы белых пикселей, которые полностью
окружены черными пикселями в данном шаблоне). Наличие любого " дыра"
в шаблоне приведет к отключению группы белых пикселей от остальных
белых пикселей и, следовательно, к тому, что набор белых пикселей не
будет соединен четырьмя. фигура 2

Рисунок 8

3890
P.Rajashekar Reddy et al, / (IJCSIT) Международный журнал компьютерных наук и информационных технологий, Vol. 3 (3), 2012 г., 388-3894

Если мы посмотрим на все возможные «конфигурации» граничных пикселей, которые III. БОЛЬШЕЕ СОСЕДСТВО
могут возникнуть в таких шаблонах, мы увидим, что есть два основных случая, Окрестность пикселя Мура, P, представляет собой набор из 8 пикселей, которые
отображаемых в Рисунок 9 и Рисунок 10. имеют общую вершину или край с этим пикселем. Эти пиксели представляют
ниже. собой пиксели P1, P2, P3, P4, P5, P6, P7 и P8, показанные на рисунке 1 ниже.
Граничные пиксели могут быть кратными этим случаям или различным Окрестности Мура (также известные как 8-соседи или косвенные соседи) -
расположением, то есть поворотом этих двух случаев. Граничные края важное понятие, которое часто встречается в литературе.
отмечены синим цветом как E1, E2, E3 и
E4.

Рисунок 9 Рисунок 10.

Третье наблюдение Для обоих вышеупомянутых двух случаев, независимо от того,


какой пиксель вы выбираете в качестве начального пикселя и в каком направлении Теперь мы готовы представить идею трассировки Мура-соседа. Дан
вы его вводите, алгоритм трассировки квадратов никогда не будет " возврат ", никогда цифровой узор, т.е. группа черных пикселей на фоне белых пикселей, то
" проходить через" а есть сетка; найдите черный пиксель и объявите его своим «стартовым»
граничный край дважды (если только он не отслеживает границу во второй пикселем. Найти «начальный» пиксель можно несколькими способами;
раз) и никогда не пропустит граничный край ... попытайся! Здесь необходимо мы начнем с нижнего левого угла сетки, просканируем каждый столбец
уточнить 2 концепции: а) алгоритм пикселей снизу вверх, начиная с крайнего левого столбца и двигаясь
"отступления" когда он идет в обратном направлении, чтобы посетить уже вправо, пока не встретим черный пиксель. Мы объявим этот пиксель
посещенный пиксель, прежде чем проследить всю границу, и б) для каждого граничный нашим «стартовым» пикселем. А теперь представьте, что вы жук (божья
край есть 2 способа " проходить через" это, а именно «внутрь» или «наружу» (где коровка), стоящий на начальном пикселе. Без потери общности выделим
«внутрь» означает направление внутрь соответствующего многоугольника, а контур, обойдя узор по часовой стрелке. Это не Неважно, какое
«внешнее» означает направление наружу многоугольника). направление вы выберете, пока вы придерживаетесь своего выбора на
протяжении всего алгоритма. Общая идея такова: каждый раз, когда вы
Кроме того, когда алгоритм построения квадрата проходит «внутрь» через одно попадаете в черный пиксель, P, возвращайтесь, т.е. возвращайтесь к
из граничных ребер, он выйдет «наружу» через следующее граничное ребро, т.е. белому пикселю, на котором вы ранее стояли, затем обойдите пиксель P
алгоритм отслеживания квадрата не может пройти через 2 последовательных по часовой стрелке, посещая каждый пиксель в его окрестности Мура,
граничных ребра в таким же образом. пока вы не попал в черный пиксель. Алгоритм завершается при
повторном посещении начального пикселя. Черные пиксели, по которым
вы прошли, будут контуром узора.
Заключительное наблюдение Существует четное число из граничные края для
любого заданного шаблона. Если вы посмотрите на многоугольник Рисунок 5. выше,
вы увидите, что: если вы хотите начать с вершины S, отмечены на схеме, и
следуйте по граничным краям, пока не дойдете до S опять таки; вы увидите, что
в процессе вы пройдете через четное количество граничных краев. Считайте Алгоритм
каждое граничное ребро «ступенькой» в заданном направлении. Затем для Ниже приводится формальное описание алгоритма трассировки
каждого «шага» вправо должен быть соответствующий «шаг» влево, если вы Мура-Соседа:
хотите вернуться в исходное положение. То же касается и вертикальных Вход: квадратная мозаика T, содержащая компонент P черных
«ступенек». В результате «ступеньки» должны быть совпадающими парами, и ячеек.
это объясняет, почему в любом таком шаблоне должно быть четное количество Выход: последовательность A B (b 1, б 2, ..., б л) граничных пикселей, т.е. контура.

граничных краев.
Определите (a) как окрестность Мура пикселя a. Пусть p обозначает текущий
граничный пиксель. Пусть c обозначает текущий рассматриваемый пиксель, т.е. c

В результате, когда алгоритм трассировки квадратов входит в находится в M (p).

начало граничной кромки ( начального пикселя) во второй раз, это Начинать

произойдет в одно и тоже направление, которое он сделал, когда впервые Установите B пустым.

вошел в него. Причина этого в том, что существует 2 способа пройти через Снизу вверх и слева направо просканируйте ячейки T до тех пор, пока не будет

граничное ребро, и поскольку алгоритм чередуется между «входом» и обнаружен черный пиксель s в P.

«выходом» из последовательных граничных ребер, и поскольку существует Вставьте s в B.

четное количество граничных ребер, алгоритм будет идти через край Установите текущую граничную точку p на s, т.е. p = s

начальной границы в секунду так же, как и в первый раз. Возврат, т.е. переход к пикселю, из которого был введен s. Установите c как
следующий пиксель по часовой стрелке в M (p).
Пока c не равно s do
Если c черный

3891
P.Rajashekar Reddy et al, / (IJCSIT) Международный журнал компьютерных наук и информационных технологий, Vol. 3 (3), 2012 г., 388-3894

о вставить c в B направление (мы выбрали по часовой стрелке), пока не найдет черный


о установить p = c пиксель. Затем он объявляет этот пиксель как текущий граничный пиксель и
о возврат (переместить текущий пиксель c в продолжает работу, как раньше. Алгоритм Radial Sweep делает то же самое. С
пиксель, из которого был введен p) else другой стороны, он предоставляет интересный метод поиска следующего
черного пикселя в окрестности Мура данного граничного пикселя. Идея этого
о переместить текущий пиксель c к следующему метода заключается в следующем: каждый раз, когда вы обнаруживаете
по часовой стрелке пиксель в M новый граничный пиксель, делайте его своим текущим пикселем P и рисуйте
(p) конец, а воображаемый линейный сегмент, соединяющий P с предыдущим граничным
Конец пикселем. Затем поверните сегмент вокруг P по часовой стрелке, пока он не
коснется черного пикселя в окрестности Мура для P. Поворот сегмента
Анализ идентичен проверке каждого пикселя в окрестности Мура точки P. Мы
Основная слабость трассировки Moore-Neighbor заключается в выборе предоставили следующую анимированную демонстрацию, чтобы объяснить,
критерия остановки, другими словами, когда алгоритм завершается? В как работает алгоритм Radial Sweep и насколько он похож на трассировку
исходном описании алгоритма, используемого при трассировке Moore-Neighbor. Давайте рассмотрим поведение алгоритма при
Мура-Соседства, критерием остановки является посещение начального использовании следующих критериев остановки.
пикселя во второй раз. Как и в случае с алгоритмом Square Tracing,
оказывается, что трассировка Moore-Neighbor не сможет создать контурную
трассировку большого семейства шаблонов, если она будет зависеть от этого
критерия. Как видите, улучшение критерия остановки было бы хорошим Анализ
началом для повышения общей производительности трассировки 1) Критерий остановки 1:
Мура-Соседа. Пусть алгоритм Radial Sweep завершится, когда он посетит начальный
пиксель во второй раз. Стоит упомянуть, что производительность алгоритма
Критерий остановки Radial Sweep идентична производительности трассировки Moore-Neighbor,
а) Остановить после посещения начального пикселя п раз, где n не менее когда этот критерий остановки используется в обоих. В алгоритме Square
2, Tracing и Moore-Neighbor tracing мы обнаружили, что использование
ИЛИ ЖЕ критерия остановки Джейкоба (предложенного Джейкобом Элиозоффом)
б) Остановитесь после повторного ввода начального пикселя таким же образом, значительно улучшило производительность обоих алгоритмов. Критерий
как вы ввели его изначально. Этот критерий был предложен Якобом Элиозовым, остановки Джейкоба требует, чтобы алгоритм завершал свою работу, когда
поэтому мы будем называть его критерием остановки Якоба. он посещает начальный пиксель во второй раз в том же направлении, что и
в первый раз. К сожалению, мы не сможем использовать критерий
Использование критерия остановки Джейкоба значительно улучшит остановки Джейкоба в алгоритме Radial Sweep. Причина в том, что алгоритм
производительность трассировки Мура-Соседства, что делает ее лучшим Radial Sweep не определяет понятие «направление». в котором он входит в
алгоритмом для извлечения контура любого паттерна независимо от его граничный пиксель. Другими словами, неясно (да и определить
связности. Причина этого во многом связана с тем, что алгоритм проверяет нетривиально) «направление», в котором граничный пиксель вводится в
всю окрестность Мура граничного пикселя, чтобы найти следующий алгоритм. Поэтому мы предложим другой критерий остановки, который не
граничный пиксель. В отличие от алгоритма Square Tracing, который делает зависит от направления, в котором вы вводите определенный пиксель, и
поворот влево или вправо и пропускает «диагональные» пиксели; улучшит производительность алгоритма радиальной развертки.
Трассировка Мура-Соседа всегда сможет выделить внешнюю границу
любого связного компонента. Причина этого в следующем: для любого
8-связанного (или односвязного) шаблона следующий граничный пиксель
находится в окрестности Мура текущего граничного пикселя. Поскольку
трассировка Мура-Соседства продолжает проверять каждый пиксель в 2) Критерий остановки 2:
окрестности Мура текущего граничного пикселя, она обязательно Предположим, что каждый раз, когда появляется новый граничный пиксель, P я, найден
обнаруживает следующий граничный пиксель. Когда трассировка алгоритмом, вставлен в последовательность граничных
Мура-Соседства посещает начальный пиксель во второй раз таким же пикселей как таковых: P 1, п 2, п 3, ..., п я; и объявлен как текущий граничный пиксель.
образом, как и в первый раз, это означает, что она проследила полный (Предположим, что P 1 - начальный пиксель). Это означает, что мы знаем
внешний контур рисунка и, если не прервать его, снова будет трассировать предыдущий граничный пиксель, P и-1, каждого текущего граничного пикселя, P я. ( Что
тот же контур. касается начального пикселя, мы
будем считать, что P 0 представляет собой воображаемый пиксель, не эквивалентный
ЛЮБОМУ пикселю в сетке, который предшествует начальному пикселю.
в последовательности граничных пикселей). Принимая во внимание
IV.РАДИАЛЬНЫЙ УГЛОМ вышеуказанные предположения, мы можем определить наш критерий остановки.
Алгоритм Radial Sweep - это алгоритм отслеживания контуров, который Алгоритм завершается, когда: а) текущая граница
был объяснен в некоторой литературе. В отличие от своего причудливого пиксель, P я, ранее появлялся как пиксель P j ( где j <i)
названия, идея очень проста. На самом деле оказывается, что алгоритм в последовательности граничных пикселей, и б) P я-1 = п j-1. Другими словами,
Radial Sweep идентичен алгоритму Moore-Neighbor Tracing. Итак, вы, алгоритм завершается, когда он посещает
должно быть, спросите: «Почему мы упомянули об этом здесь? граничный пиксель P во второй раз при условии, что граничный пиксель перед
P (в последовательности граничных пикселей) во второй раз является тем же
Мур-Сосед отслеживание поиски то Мур пикселем, который был перед P, когда P был впервые посещен. Если этот
окрестности текущего граничного пикселя в определенном критерий остановки

3892
P.Rajashekar Reddy et al, / (IJCSIT) Международный журнал компьютерных наук и информационных технологий, Vol. 3 (3), 2012 г., 388-3894

был удовлетворен, и алгоритм не завершился, алгоритм радиальной ваши ходы очень важны. Только если P1 белый, переходите к проверке P2.
развертки продолжит отслеживание той же границы во второй раз. Если P2 черный, а затем объявите P2 вашим текущим граничным пикселем
Производительность алгоритма Radial Sweep, использующего этот критерий и переместитесь на один шаг вперед, чтобы приземлиться на P2. Только
остановки, аналогична производительности трассировки Moore-Neighbor с если и P1, и P2 белые, переходите к проверке P3. Если P3 черный,
использованием критерия остановки Jacob. объявите P3 в качестве текущего граничного пикселя и переместите один
шаг вправо, а затем один шаг влево, как показано на рисунке 4 ниже. 3
простых правила для 3 простых случаев. Как вы видели, важно следить за
В.ТЕО ПАВЛИДИС своим направлением при повороте, поскольку все движения соответствуют
Этот алгоритм является одним из последних алгоритмов отслеживания контуров и вашей текущей ориентации. Что, если все 3 пикселя перед вами белые?
был предложен Тео Павлидисом. Это не так просто, как алгоритм Square Tracing или Затем вы поворачиваете (стоя на текущем граничном пикселе) на 90
трассировка Moore-Neighbor, мы объясним этот алгоритм, используя подход, градусов по часовой стрелке, чтобы увидеть новый набор из 3 пикселей
отличный от того, который представлен в книге. Этот подход легче понять, и он даст перед собой. После этого вы выполняете ту же проверку этих новых
представление об общей идее алгоритма. Не умаляя общности, мы выбрали пикселей, что и раньше. Вы все еще можете спросить: а что, если все эти 3
трассировку контура по часовой стрелке, чтобы обеспечить согласованность со пикселя белые ?! Затем снова поверните на 90 градусов по часовой
всеми другими алгоритмами трассировки контура, обсуждаемыми на этом веб-сайте. стрелке, стоя на том же пикселе. Вы можете повернуть 3 раза (каждый на
С другой стороны, Павлидис предпочитает делать это против часовой стрелки. Это 90 градусов по часовой стрелке), прежде чем проверять всю окрестность
не должно иметь никакого значения для производительности алгоритма. пикселя Мура. Если вы повернетесь 3 раза, не обнаружив ни одного
Единственный эффект, который это окажет, - это относительное направление черного пикселя, это означает, что вы стоите на изолированном пикселе,
движений, которые вы будете совершать при отслеживании контура. Дан цифровой т.е. не подключены ни к какому другому черному пикселю. Вот почему
узор, т.е. группа черных пикселей на фоне белых пикселей, то есть сетка; найдите алгоритм позволит вам повернуться 3 раза, прежде чем он завершится.
черный пиксель и объявите его своим «стартовым» пикселем. Найти «начальный» Другое дело: когда алгоритм завершается? Алгоритм завершается в 2
пиксель можно несколькими способами; один из них выполняется, начиная с нижнего случаях: a) Как упоминалось выше, алгоритм позволит вам повернуть
левого угла сетки, просматривая каждый столбец пикселей снизу вверх - начиная с каждый 3 раза на 90 градусов по часовой стрелке, после чего он
крайнего левого столбца и двигаясь вправо - до тех пор, пока не встретится черный завершится и объявит пиксель изолированным, ИЛИ b) когда текущий
пиксель. Объявите этот пиксель как «начальный» пиксель. Мы не обязательно будем граничный пиксель является вашим начальный пиксель, алгоритм
следовать описанному выше методу при поиске начального пикселя. Важное завершается "
ограничение относительно направления, в котором вы вводите начальный пиксель.
Фактически вы можете выбрать ЛЮБОЙ черный граничный пиксель в качестве
начального пикселя, если, когда вы изначально стоите на нем, ваш левый соседний
пиксель НЕ черный. Другими словами, вы должны убедиться, что вы вводите
начальный пиксель в направлении, гарантирующем, что левый соседний с ним
пиксель будет белым («левый» здесь берется относительно направления, в котором Алгоритм
вы вводите начальный пиксель). Теперь представьте, что вы - ошибка, стоящая на Ниже приводится формальное описание алгоритма Павлидиса: Входные данные:
начальном пикселе алгоритма; Пиксели, которые вас интересуют в любое время, - квадратная мозаика T, содержащая компонент P, состоящий из черных ячеек.
это 3 пикселя перед вами, то есть P1, P2 и P3. Мы определим P2 как пиксель прямо
перед вами, P1 - это пиксель, смежный с P2 слева, а P3 - это пиксель, смежный Выход: последовательность A B (b 1, б 2, ..., б л) граничных пикселей, т.е. контура.
справа с P2. Как и в алгоритме Square Tracing, самое важное в алгоритме Павлидиса
- это ваше «чувство направления». Левая и правая повороты, которые вы делаете, Определения:
относятся к вашему текущему положению, которое зависит от того, как вы ввели Определите p как текущий граничный пиксель, то есть пиксель, на котором вы
пиксель, на котором стоите. Следовательно, это ' Важно следить за своей текущей стоите.
ориентацией, чтобы делать правильные шаги. Но независимо от того, в каком • Определите пиксели P1, P2 и P3
положении вы стоите, пиксели P1, P2 и P3 будут определены, как указано выше. • P2 - это пиксель перед вами, смежный с тем, на котором вы
Имея эту информацию, мы готовы объяснить алгоритм. Каждый раз, когда вы стоите сейчас стоите, то есть пиксель p.
на текущем граничном пикселе (который вначале является начальным пикселем), • P1 - это левый пиксель, смежный с P2. P3 - это
сделайте следующее: Сначала проверьте пиксель P1. Если P1 черный, то объявите • пиксель, расположенный справа от точки P2.
P1 вашим текущим граничным пикселем и переместитесь на один шаг вперед, а
• Определите «шаг» в данном направлении как перемещение в этом
затем на один шаг влево, чтобы приземлиться на P1. Порядок, в котором Каждый
направлении на расстояние в один пиксель.
раз, когда вы стоите на текущем граничном пикселе (который вначале является
Представьте, что вы - жук, перемещающийся от пикселя к пикселю, следуя
начальным пикселем), сделайте следующее: Сначала проверьте пиксель P1. Если
заданным направлениям. «вперед», «влево» и «вправо» относятся к вашему
P1 черный, то объявите P1 вашим текущим граничным пикселем и переместитесь на
текущему положению в пикселе. \ Начинать
один шаг вперед, а затем на один шаг влево, чтобы приземлиться на P1. Порядок, в
котором Каждый раз, когда вы стоите на текущем граничном пикселе (который
• Установите B пустым.
вначале является начальным пикселем), сделайте следующее: Сначала проверьте
• Снизу вверх и слева направо просканируйте ячейки T до тех пор, пока не
пиксель P1. Если P1 черный, то объявите P1 вашим текущим граничным пикселем и
будет найден черный начальный пиксель s для P ( см. Важное ограничение
переместитесь на один шаг вперед, а затем на один шаг влево, чтобы приземлиться
относительно направления ввода начального пикселя выше)
на P1. Порядок, в котором

• Вставьте s в B.

• Установите текущий пиксель p в качестве начального пикселя s.

• Повторите следующее
Если пиксель P1 черный

3893
P.Rajashekar Reddy et al, / (IJCSIT) Международный журнал компьютерных наук и информационных технологий, Vol. 3 (3), 2012 г., 388-3894

о Вставьте P1 в B Следует использовать альтернативный метод улучшения алгоритма Павлидиса,


о Обновить p = P1 а именно: завершение работы алгоритма после третьего посещения начального
о Сделайте один шаг вперед, а затем один пикселя.
шаг влево, если P2
черный VI. ВЫВОД:
о Вставьте P2 в B Алгоритм Modified Moore Neighbor работает с предварительно утоненными
о Обновить p = P2 контурными линиями (шириной в один пиксель). Его эффективность по сравнению
о Сделайте еще один шаг вперед, с исходным алгоритмом Соседства Мура заключается в критерии остановки,
о если P3 черный поскольку сложность значительно снижается, и алгоритм поиска дыр не
о Вставьте P3 в B требуется, что еще больше снижает временную сложность. Чтобы преодолеть
о Обновить p = P3 недостаток повторной проверки черных пикселей в предлагаемом алгоритме, мы
о Переместитесь на один шаг вправо, обновите свой можем проверить, была ли линия контура, на которой существует пиксель,
положение и переместитесь на один шаг влево от вашего текущего отслежена, или нет, вместо того, чтобы проверять пиксель. В дальнейшем эта
иначе, если вы уже повернулись на 90 градусов по часовой стрелке 3 раза, работа может быть уточнена автоматически. Извлечение значения высоты из
находясь в том же пикселе p топографической карты с помощью автоматического метода распознавания
о завершить программу и объявить p как текста. Алгоритм Павлидиса очень хорошо работает с 4-связными паттернами.
изолированный пиксель его проблема заключается в отслеживании некоторых 8-связанных паттернов,
еще которые не являются 4-связными. Алгоритм MooreNeighbor прост, но у него
о повернуть на 90 градусов по часовой стрелке, пока слабый критерий остановки. Под этим мы можем понимать все алгоритмы,
стоя на текущем пикселе p имеющие достоинства и недостатки. В любом случае нам нужны эффективные
алгоритмы отслеживания контуров, которые легко реализовать с точки зрения
Пока p = s (конец повторения) логики для критерия запуска и остановки.
Конец

Помните, что вы - жук, идущий по пикселям; обратите внимание, как


меняется ваша ориентация при повороте влево или вправо. Мы включили А ЗНАНИЕ
все возможные варианты алгоритма, чтобы объяснить его как можно более Мы очень благодарны нашему заведующему кафедрой профессору Г.Г.
подробно. Вишну Мурти за огромную поддержку в выполнении этой статьи, и мы
Анализ благодарим всех наших коллег за моральную поддержку.
Если вы думаете, что алгоритм Павлидиса является идеальным для извлечения
контуров паттернов, подумайте еще раз ... Это правда, что этот алгоритм немного
сложнее, чем, скажем, трассировка Мура-Соседства, в которой нет особых
случаев, о которых нужно позаботиться. , но ему не удается выделить контур РЕКОМЕНДАЦИИ
1) Дж. Туссен, Примечания к курсу: Сетки, возможность подключения и трассировка контуров (PostScript)
большого семейства паттернов, имеющих определенный вид связности. Алгоритм
очень хорошо работает на 4-связных паттернах. его проблема заключается в 2) Т. Павлидис, Алгоритмы для графики и Обработка изображений,

отслеживании некоторых 8-связанных паттернов, которые не являются Computer Science Press, Роквилл, Мэриленд, 1982 г.

4-связными. Есть 2 простых способа изменить алгоритм, чтобы значительно 3) Майк Алдер, Трассировка границ (радиальная развертка)

4) М. Сосс, Доказательство правильности алгоритма трассировки квадратов, когда и шаблон, и фон


улучшить его производительность.
являются 4-связными.

a) Измените критерий остановки. Вместо того, чтобы завершать алгоритм, когда [1] Ф. Леберль, Д. Олсон, « Растровое сканирование для оперативной оцифровки

он посещает начальный пиксель во второй раз, заставьте алгоритм завершать графические данные ”, Фотограмметрическая инженерия и дистанционное зондирование, 48 (4),
стр. 615-627, 1982.
работу после посещения начального пикселя в третий или даже четвертый раз.
[2] Д. Гринл, " Растровая и векторная обработка для отсканированных линий ”,
Это улучшит общую производительность алгоритма. Метрика фотограмм и дистанционное зондирование, 53 (10), стр. 1383-1387,
1987 г.

ИЛИ ЖЕ [3] П. Сойль, П. Арриги, « От сканированных топографических карт до цифровых


Модели высот ”, Proc. Of Geovision, Международный симпозиум по применению
б) Перейти к источнику проблемы; а именно, на выбор начального пикселя
изображений в геологии, стр.1-4, 1999.
существует важное ограничение, касающееся направления, в котором вы вводите [4] С. Фришкнехт, Э. Канани, “ Автоматическая интерпретация отсканированных
начальный пиксель. По сути, вы должны ввести начальный пиксель так, чтобы, когда Топографические карты: растровый подход ”, Proc.Second
вы стоите на нем, пиксель, примыкающий к вам слева, был белым. Причина Международный семинар, GREC, стр. 207-220, 1997.
[5] С. Сальваторе, П. Гиттон, «Распознавание контурных линий по сканированным изображениям.
наложения такого ограничения: поскольку вы всегда рассматриваете 3 пикселя
Топографические карты », Журнал WSCG, стр. 1-3, 2004 г.
перед вами в определенном порядке, вы, как правило, пропустите граничный [6] XZ Zhou, HL Zhen, " Автоматическая векторизация маршрутных линий
пиксель, расположенный непосредственно слева от начального пикселя в на основе деформируемой модели и ориентации потока поля ", Китайский

определенных шаблонах. Не только левый соседний пиксель начального пикселя Journal of Computers, том 8, стр. 1056-1063, 2004. [7] Dongjum Xin, XZ Zhou, HLZhen, “ Выделение
контурной линии из
рискует быть пропущенным, но и пиксель, расположенный непосредственно под этим
Бумажные топографические карты ».
пикселем, сталкивается с такой угрозой. С другой стороны, поиск начального [8] Дж. Туссен, Примечания к курсу: Сетки, связь и отслеживание контуров.
пикселя, который удовлетворяет вышеуказанному ограничению, может быть трудным <http://jeff.cs.mcgill.ca/~godfried/teaching/pr-notes/contour.ps>.

и во многих случаях такой пиксель не будет найден. В этом случае [9] Лам, Л., Сон-Ван Ли, и Чинг Ю. Суен, «Истончение.
Методологии - всесторонний обзор, IEEE Transactions on Pattern Analysis and
Machine Intelligence, Vol 14, No. 9, сентябрь
1992, стр. 879.

3894

Вам также может понравиться