Главная > Алгоритмы машинной графики и обработки изображений
НАПИШУ ВСЁ ЧТО ЗАДАЛИ
СЕКРЕТНЫЙ БОТ В ТЕЛЕГЕ
<< Предыдущий параграф Следующий параграф >>
Пред.
След.
Макеты страниц

Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO

8.4.3. ПРОЦЕДУРЫ, ИСПОЛЬЗУЕМЫЕ ПРИ ЗАПОЛНЕНИИ ПО КРИТЕРИЮ СВЯЗНОСТИ

Мы будем пользоваться термином «адрес пиксела» для обозначения описания местоположения соответствующего пиксела В роли такого описания могут выступать координаты указатель массива и т. Если — адрес пиксела А, то выражение задает адрес пиксела, расположенного слева от пиксела (на той же горизонтальной прямой), а выражение — адрес пиксела, расположенного справа от пиксела А. Первый из этих адресов не определен для крайнего правого, а второй — для крайнего левого пикселов каждой строки. При любой реализации таких алгоритмов необходимо предусматривать специальные средства для работы с этими пикселами, однако мы не будем усложнять изложение рассмотрением подобных частных случаев.

Процедура определяет адрес крайнего левого пиксела интервала с фиксированным цветом, в который входит пиксел (рис. 8.8, а). Процедура состоит в следующем:

т. е. она определяет адрес такого крайнего правого пиксела, расположенного слева от пиксела который окрашен в тот же, что и пиксел цвет и отделен от него, по меньшей мере, одним пикселом другого цвета (рис. 8.8,б). Реализация этих процедур очевидна.

Порядки вершины (интервала) ГСС, соответствующей пикселу определяются с помощью процедуры описанной в виде алгоритма 8.3 а. Для определения адресов пикселов представленных на рис. 8.8, в, требуется небольшая модификация этой процедуры. Если такие пикселы не заданы, процедура вместо адреса выдает ноль. (Если ноль — допустимый адрес, то необходимо выбрать в качестве начальных значений в процедуре LINK, какие-либо другие значения.)

Рис. 8.8. Определение процедуры LEFT(p) (а) и процедуры LRIGHT (б); задание пикселов (в). Аргументом процедуры может служить любой пиксел, находящийся на заштрихованном участке между пикселами

Поскольку затравочный пиксел может находиться в середине области, необходимо вести ее заполнение в двух направлениях, как показано на рис. 8.7. Для всякого другого пиксела, хранящегося в сетке, необходимость подобного обхода в двух направлениях отсутствует. Вместо того чтобы предусматривать специальную процедуру, для обхода первой области целесообразно обратить внимание на задание начальных условий. Если пиксел со значением затравочный пикселверхний (расположен непосредственно над затравочным кристаллом) не принадлежит контуру, то пиксел, адрес которого определяется с помощью процедуры LEFT (затравочный пикселверхний), следует ввести в стек, снабдив его меткой, указывающей, что с него должен начинаться просмотр вверх. Это, очевидно, достаточно стандартная ситуация при работе с интерактивными графическими системами, поскольку пользователь часто склонен задавать затравочный пиксел подальше от контура. Если пиксел, расположенный над затравочным пикселом, принадлежит контуру, процесс заполнения осуществляется следующим образом. Сначала с помощью обращения к процедуре LINK определяются порядки соответствующего интервала контура. Если оказывается, что порядки имеют значения (0,2), то это означает, что затравочный пиксел размещается непосредственно под точкой максимума и, следовательно, отсутствует необходимость в просмотре вверх. В противном случае затравочный пиксел размещается непосредственно под почти горизонтальной дугой контура. Затем затравочный пиксел заменяется пикселом с адресом LEFT (затравочный пиксел) и производится обращение к процедуре LINK, которая применяется к интервалу контура, расположенному слева от затравочного пиксела. После этого пиксел назначается затравочным пикселом для просмотра области вверх.

1
Оглавление
email@scask.ru