Скачиваний:
4
Добавлен:
02.05.2014
Размер:
33.33 Кб
Скачать

Список функций Image Processing Toolbox. Описание функции WATERSHED  Семинары   Обучение   Лицензирование   Разработка   Подписка   Форум  Регистрация    Matlab    Toolboxes    Simulink    Blocksets    Femlab    Полезное Вход Обработка сигналов и изображений\image Processing ToolboxСписок функций Image Processing Toolbox: Сегментация изображений

  В оглавление \ К следующему разделу \ К предыдущему разделу

WATERSHED Алгоритм маркерного водораздела Синтаксис:

L=watershed(A)

L=watershed(A,CONN)

Описание:

Функция L=watershed(A) вычисляет матрицу меток, которая идентифицирует области водораздела исходной матрицы A. Матрица А может быть любой размерности. Элементы матрицы L – это целые числа, которые больше или равны 0. Элементы, помеченные нулями не принадлежат никакой области водораздела. Они называются пикселами водораздела. Элементы помеченные единицами принадлежат области водораздела, элементы помеченные двойкой принадлежат другой области водораздела и т.д.

По умолчанию, реализованный алгоритм маркерного водораздела использует 8-связные окрестности для двумерных и 26-связные окрестности для трехмерных изображений. Для –мерных изображений, алгоритм маркерного водораздела использует связность, которая определяется как conndef(ndims(A),'maximal').

Функция L=watershed(A,CONN) определяет связность для использования в алгоритме маркерного водораздела. Параметр CONN принимает одно из приведенных ниже значений.

Значение параметра

CONN Описание Двумерная связность 4 4–связная окрестность 8 8–связная окрестность Трехмерная связность 6 6–связная окрестность 18 18–связная окрестность 26 26–связная окрестность Связность может быть определена, в большинстве случаев, для любой размерности при использовании для параметра CONN матрицы нулей и единиц размерности 3х3х...х3. Значение 1 определяет местоположение окрестности относительно центрального элемента CONN. Запись значений параметра CONN должна быть симметрична относительно центрального элемента.

Требования к исходным данным.

Массив A может быть числовым или логическим массивом любой размерности. Также он должен быть не разреженным. Выходной массив L принадлежит классу double.

Примеры:

Пример для двумерных массивов:

1.Создать бинарное изображение, содержащее два перекрывающихся круглых объекта.

center1=-10;

center2=-center1;

dist=sqrt(2*(2*center1)^2);

radius=dist/2*1.4;

lims=[floor(center1-1.2*radius) ceil(center2+1.2*radius)];

[x,y]=meshgrid(lims(1):lims(2));

bw1=sqrt((x-center1).^2+(y-center1).^2)<=radius;

bw2=sqrt((x-center2).^2+(y-center2).^2)<=radius;

bw=bw1|bw2;

figure, imshow(bw,'n'), title('bw')

2.Вычисление преобразования расстояний в дополнение к бинарному изображению.

D=bwdist(~bw);

figure, imshow(D,[],'n'), title('Distance transform of ~bw')

3.Дополнительное преобразование расстояний и обработка пикселов, которые принадлежат объектам и имеют значение -Inf.

D=-D;

D(~bw)=-Inf;

4.Вычисление алгоритма маркерного водораздела и визуализация результата в виде индексного изображения.

L=watershed(D);

rgb=label2rgb(L,'jet',[.5 .5 .5]);

figure, imshow(rgb,'n'), title('Watershed transfrom of D');

Пример для трехмерных массивов:

1.Создать трехмерное бинарное изображение, которое содержит две перекрывающиеся сферы.

center1=-10;

center2=-center1;

dist=sqrt(3*(2*center1)^2);

radius=dist/2*1.4;

lims=[floor(center1-1.2*radius) ceil(center2+1.2*radius)];

[x,y,z]=meshgrid(lims(1):lims(2));

bw1=sqrt((x-center1).^2+(y-center1).^2 + ...

(z-center1).^2)<=radius;

bw2=sqrt((x-center2).^2+(y-center2).^2 + ...

(z-center2).^2)<=radius;

bw=bw1|bw2;

figure, isosurface(x,y,z,bw,0.5), axis equal, title('BW')

xlabel x, ylabel y, zlabel z

xlim(lims), ylim(lims), zlim(lims)

view(3), camlight, lighting gouraud

2.Вычисление преобразования расстояний.

D=bwdist(~bw);

figure, isosurface(x,y,z,D,radius/2), axis equal

title('Isosurface of distance transform')

xlabel x, ylabel y, zlabel z

xlim(lims), ylim(lims), zlim(lims)

view(3), camlight, lighting gouraud

3.Дополнительное преобразование расстояний и обработка пикселов, которые не принадлежат объектам и имеют значение -Inf, вычисление алгоритма маркерного водораздела.

D=-D;

D(~bw)=-Inf;

L=watershed(D);

figure, isosurface(x,y,z,L==2,0.5), axis equal

title('Segmented object')

xlabel x, ylabel y, zlabel z

xlim(lims), ylim(lims), zlim(lims)

view(3), camlight, lighting gouraud

figure, isosurface(x,y,z,L==3,0.5), axis equal

title('Segmented object')

xlabel x, ylabel y, zlabel z

xlim(lims), ylim(lims), zlim(lims)

view(3), camlight, lighting gouraud

Алгоритм

маркерного водораздела использует разновидность алгоритма Vincent-Soille [1]. Для более детальной информации смотрите toolbox/images/images/private/watershed_vs.h.

Сопутствующие функции: BWLABEL, BWLABELN, BWDIST, REGIONPROPS.

Ссылки:

1. Luc Vincent and Pierre Soille, "Watersheds in Digital Spaces: An Efficient lgorithm Based on Immersion Simulations," IEEE Transactions of Pattern Analysis nd Machine Intelligence, vol. 13, no. 6, June 1991, pp. 583-598.

  В оглавление \ К следующему разделу \ К предыдущему разделу

  I Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)

  II Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2004 г.) На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro    E-mail: matlab@exponenta.ru      Информация на сайте была обновлена 14.05.05 Copyright 2001-2005 SoftLine Co 

Наши баннеры         hotlog_js="1.0"; hotlog_r=""+Math.random()+"&s=58396&im=33&r="+escape(document.referrer)+"&pg="+ escape(window.location.href); document.cookie="hotlog=1; path=/"; hotlog_r+="&c="+(document.cookie?"Y":"N"); hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N") hotlog_js="1.2"; hotlog_r+="&wh="+screen.width+'x'+screen.height+"&px="+ (((navigator.appName.substring(0,3)=="Mic"))? screen.colorDepth:screen.pixelDepth) hotlog_js="1.3" hotlog_r+="&js="+hotlog_js; document.write("") >

Соседние файлы в папке Функции Image Toolbox