1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
%h=findobj(gcf,'Tag','Edit1')
%load(get(h,'string'))
I=get(handles.edit1,'String');
%imshow(I);
hy = fspecial('sobel');
hx = hy';
Iy = imfilter(double(I), hy, 'replicate');
Ix = imfilter(double(I), hx, 'replicate');
gradmag = sqrt(Ix.^2 + Iy.^2);
%figure, imshow(gradmag,[]), title('Module du gradient')
L = watershed(gradmag);
Lrgb = label2rgb(L);
%figure, imshow(Lrgb), title('Régions détectées par la LPE');
se = strel('disk', 15);
Io = imopen(I, se);
%figure, imshow(Io), title('ouverture')
Ie = imerode(I, se);
Iobr = imreconstruct(Ie, I);
%figure, imshow(Iobr), title('Ouverture par reconstruction(erosion)')
Ioc = imclose(Io, se);
%figure, imshow(Ioc), title('Ouverture-Fermeture')
Iobrd = imdilate(Iobr, se);
Iobrcbr = imreconstruct(imcomplement(Iobrd), imcomplement(Iobr));
Iobrcbr = imcomplement(Iobrcbr);
%figure, imshow(Iobrcbr), title('Ouverture-Fermeture par reconstruction (dilatation)')
fgm = imregionalmax(Iobrcbr);
%figure, imshow(fgm), title('les maxima régionaux')
axes(handles.axes1);imshow(fgm);title('image segmentée') |
Partager