8.4. ЗАПОЛНЕНИЕ КОНТУРА ПО КРИТЕРИЮ СВЯЗНОСТИ
Если известно, что точка принадлежит внутренней части области, то ее можно использовать в качестве своего рода затравочного пиксела, окрашивая в ее цвет смежные пикселы до тех пор, пока не встретится контур. Если для этого алгоритма воспользоваться рекурсивным описанием, то выглядит оно достаточно просто. Пусть с цвет затравочного пиксела S и F — заполняемая область, степень заполнения которой соответствует шагу алгоритма. На первом шаге задается
затем на каждом шаге к области
добавляются все те пикселы, которые окрашены в цвет с и имеют непосредственного соседа в
Таким образом, заполнение контура осуществляется на основе связности. Для обозначения этого процесса используют и название «алгоритм засеивания». Допущение, что имеется такой затравочный пиксел, при работе на интерактивных графических системах является вполне реалистичным, поскольку в этом случае пользователь может указать этот пиксел, воспользовавшись световым пером или введя световой указатель внутрь контура. То же относится и к системам, в которых трехмерный объект задается вершинами аппроксимирующего его многогранника и на экране отображаются различные проекции этого объекта. При этом нетрудно определить точки, расположенные внутри получающихся в результате такого отображения многоугольников. В системах обработки
изображений точку, расположенную внутри области, можно найти, взяв точку, непосредственно смежную с пикселом контура, и снабдив ее меткой в процессе выделения контура. В качестве средства предварительной обработки можно использовать и частичную проверку на четность.
При заполнении области по критерию связности появление в области «паразитных» пикселов менее вероятно, чем при заполнении по критерию четности. Действительно, цвет внутренней части рассматриваемой зоны области известен и пиксел не вводится в область, если он окрашен в другой цвет. Паразитный пиксел может появиться лишь тогда, когда заданный контур не замкнут. Гарантия отсутствия паразитных пикселов оплачивается необходимостью иметь по одному затравочному пикселу на каждую компоненту связности области в тех случаях, когда в области содержится более одной такой компоненты.