Monday, August 2, 2010

Image segmantation using region growing

clear all; close all; clc;
f = imread('coins.png');
t=70; % Thres Hold value
s = 60; % Seed Value
[g, nr,si,ti] = regiongrow(f,s,t);
figure,imshow(f),title('Input Image');
figure,imshow(ti),title('After Segmentation');

function [g,nr,si,ti]=regiongrow(f,s,t)
% regiongrow perform segmentation by region growing.
f = double(f);
if numel(s) ==1
si =f == s;
s1 = s;
else
si = bwmorph(s, 'shrink', Inf);
j = find(si);
s1 = f(j);
end
ti = false(size(f));
for k=1:length(s1)
seedvalue = s1(k);
s = abs(f - seedvalue) <= t;
ti = ti | s;
end
[g, nr] = bwlabel(imreconstruct(si, ti));

No comments: