Сегментация по водоразделам с помощью преобразования расстояния
Лабораторная работа №9
Код: f = imread('1.tif'); a =im2double(f); b = ~a; c = bwdist(b); d = watershed(-c); e = a + ~d; figure, imshow(e); Рис 1. Совмещенные изображения a и d Сегментация по водоразделам с помощью градиентов f = imread('2.tif'); a =im2double(f); h = fspecial('sobel'); b = (imfilter(a, h, 'replicate').^2 + imfilter(a, h', 'replicate').^2).^0.5; c = watershed(bwdist(b)); d = a + ~c; figure, imshow(d); d = imclose(imopen(b, ones(3,3)), ones(3,3)); e = watershed(d); f = a+ ~e; figure, imshow(mat2gray(f));
Рис2. Сегментация по водоразделам с помощью градиентов Использование маркеров при сегментации по водоразделам f = imread('3.tif'); a =im2double(f); h = fspecial('sobel'); b = (imfilter(a, h, 'replicate').^2 + imfilter(a, h', 'replicate').^2).^0.5; c = imextendedmin(a,0.1); d = watershed(bwdist(c)); e = d ==0; f = imimposemin(b, c|e); g = watershed(f); k = a + ~g; figure, imshow(mat2gray(k));
Рис3. Использование маркеров при сегментации по водоразделам
|