Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МИРЭА / Методичка_2010 / Методичка_2010.doc
Скачиваний:
2668
Добавлен:
10.05.2015
Размер:
22.71 Mб
Скачать

Выделение и описание областей

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

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

Выделение связных областей на бинарных изображениях

Соседство и связность на цифровых изображениях

Понятия «соседства» и «связности» тесно связаны с естественной топологией и геометрией дискретного цифрового изображения.

Как мы уже отмечали ранее, каждый пиксел изображения с координатами (x,y) имеет восемьсоседей, то есть примыкающих к нему (граничащихс ним) ближайших пикселов, составляющих прямоугольную окрестность 33 (см. табл. 4.1.2).

@Таблица 4.1.2. Прямоугольная окрестность 33

(x–1,y–1)

(x,y–1)

(x+1,y–1)

(x–1,y)

(x,y)

(x+1,y)

(x–1,y+1)

(x,y+1)

(x+1,y+1)

При этом четыре пиксела (соседи по горизонтали и вертикали) являются более близкими соседями и находятся от центрального пиксела окрестности на расстоянии 1. Еще четыре пиксела (соседи по диагонали) являются менее близкими соседями и находятся от центрального пиксела окрестности на расстоянии 2. Соответственно в обработке изображений рассматриваются два вида соседства и два соответствующих им вида связности:

  • соседство «по кресту» и 4-связность;

  • соседство «по квадрату» и 8-связность.

Чаще используется отношение 8-связности, при котором считается, что на прямоугольной решетке каждая точка изображения имеет восемь соседей.

Связной областьюизображения считается такая его область (множество точек), в которой:

  1. все точки области имеют одинаковое значение (яркости или любого другого рассматриваемого признака);

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

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

Рассмотрим теперь два наиболее популярных алгоритма выделения связных областей на бинарных изображениях.

Метод «лесного пожара»

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

Пусть дано изображение IM размера DimXDimY и меточное изображение LAB такого же размера. Массив переменного размера RegionList содержит списки (массивы) точек, принадлежащих областям. Переменная RegionListSize содержит текущий размер массива RegionList. Используется стек точек PSTACK (на стек кладутся координаты каждой новой «подожженной» точки с тем, чтобы в будущем, будучи снятой со стека, она «подожгла», то есть положила на стек координаты всех своих подходящих соседей).

Стековый алгоритм прослеживания связных областей:

Обнулить массив LAB;

RegionListSize:=0;

for J=0 to DIMY–1 do

for I=0 to DIMX–1 do

if (LAB[I,J]=0) then

begin

Увеличить RegionListSize;

LAB[I,J]:=RegionListSize;

POINT:=(I,J);

CURRENT:=IM[I,J];

Добавить_точку(RegionList[RegionListSize],POINT);

Поместить_в_стек(PSTACK,POINT);

while (PSTACK не пуст) do

begin

POINT:=Достать_из_стека(PSTACK);

for K:=POINT.X–1 to POINT.X+1 do

for L:=POINT.Y–1 to POINT.Y+1 do

if (IM[K,L]=CURRENT)and(LAB[K,L]=0) then

begin

LAB[K,L]:=RegionListSize;

POINT:=(K,L);

Добавить_точку

(RegionList[RegionListSize],POINT);

Поместить_в_стек(PSTACK,POINT);

end;

end;

end;

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

Двухпроходный алгоритм выделения связных областей

Данный алгоритм также предназначен для выделения 4-связанных или 8-связанных областей. Идея его заключается в том, что единицей просмотра изображения является уже не отдельный пиксел, а связный отрезок строки (сегмент). При этом напервом проходепо изображению вновь обнаруженный связный сегмент помечается либо новой оригинальной меткой – если он ни одним пикселом не касается какого-либо уже помеченного сегмента в предыдущей по ходу анализа строке, либо меткой той области, которой принадлежит граничащий с ним отрезок предыдущей строки. Такой алгоритм построчного просмотра изображения обеспечивает существенно более высокое быстродействие по сравнению с описанным выше «стековым» алгоритмом, однако в процессе пометки сегментов могут возникать так называемыеколлизииили «столкновения» меток. Это происходит в том случае, если отрезок граничит одновременно с несколькими сегментами предыдущей строки, причем эти сегменты принадлежат разным областям (случайV-образных иY-образных фигур). Для устранения таких коллизий используетсявторой проходпо изображению. На втором проходе повторно размечаются те области, для которых на первом проходе были обнаружены коллизии, и занесены в специальнуютаблицу эквивалентностипары индексов областей, подлежащих объединению.

Рассмотрим алгоритмическую реализацию этого метода более подробно.

Первый проход.Просматриваем содержимое изображения R столбец за столбцом и присваиваем ненулевое значение v каждому ненулевому пикселюR(i,j). Величина v выбирается в соответствии с номерами соседних пикселей, где свойство соседства показано на рисунке (соседи вне изображения R не рассматриваются).

  1. Если все соседи – пиксели фона (со значением пикселя равным нулю), R(i,j) присваивается новый (на данный момент), неиспользованный номер.

  2. Если имеется в точности один соседний пиксель с ненулевым номером, присваиваем этот номер пикселю R(i,j).

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

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

@Рис. 4.1.16. Маски обнаружения областей: слева – в случае 4-х связности, в центре – в случае 8-ми связности, справа – случай «столкновения» номеров

@Рис. 4.1.17. Нахождение объектов в случае 8-связности: (а), (б), (в) – шаги алгоритма. Таблица эквивалентности после шага (б): 2–5, 5–5, 2–4

Данный алгоритм единообразно реализуется и в случае четырёх- и в случае восьмисвязности. Различия заключаются только в способе формирования маски опроса соседей (рис. 4.1.16).

Поскольку оба описанных метода опираются на одно и то же определение связной области, результаты их работы будут, естественно, одинаковы. Пример разметки связных областей на бинарном изображении показан на рис. 4.1.18, 4.1.19. На меточном изображении все пикселы каждый связной области исходного изображения помечены одним и тем же значением – уникальным индексом (номером) данной области.

@Рис. 4.1.18. Исходное бинарное @Рис. 4.1.19. Размеченные связные

изображение области на бинарном изображении

Выделение контуров на бинарных изображениях.

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