function choix_filtre(action, varargin)
if nargin<1
action='initialisation';
end;
feval (action,varargin{:});
return;
function [bw] = initialisation()
imgini = imread('c:\test.bmp')
img=rgb2gray(imgini)
level = graythresh(img)
bw=im2bw(img,level)
f1 = figure;
colormap(gray);
maximize(f1);
screensize = get(0,'screensize')
boutongaussien = uicontrol('style','radio','position',[screensize(3)/4 screensize(4)/2.5 100 100],'string','Filtre Gaussien')
boutoncanny = uicontrol('style','radio','position',[screensize(3)/4 screensize(4)/3 100 100],'string','Filtre Canny')
boutonOK = uicontrol('Style', 'pushbutton', 'String', 'Application du filtre',...
'Position', [screensize(3)/4 200 screensize(3)/2 50],'
Callback',@filtre);
boutonexit = uicontrol('Style', 'pushbutton', 'String', 'Validation du type de filtre et de ces paramètres et poursuite du programme',...
'Position', [screensize(3)/4 20 screensize(3)/2 50]);
boutonthresh = uicontrol('Style', 'edit','BackgroundColor','white','Position', [screensize(3)/2 screensize(4)/3 100 20]);
boutonsigma = uicontrol('Style','edit','BackgroundColor','white','Position', [screensize(3)/1.5 screensize(4)/3 100 20]);
textthresh = uicontrol('Style','text','Position', [screensize(3)/2 (screensize(4)/3)+50 100 20], 'String', 'Valeur du threshold');
textsigma = uicontrol('Style','text','Position', [screensize(3)/1.5 (screensize(4)/3)+50 100 20], 'String', 'Valeur du sigma');
subplot (2,2,1), imshow (img)
function [h]=filtre(bw)
valeurthresh = get(boutonthresh,'value')
valeursigma = get(boutonsigma,'value')
if valeurOK == get(boutonOK, 'Max')
if valeurgaussien== 1
h=fspecial('Gaussian',str2num('valeurthresh'),str2num('valeursigma'))
bw=imfilter(bw,h)
bw=imfill(~bw,'hole')
bw=~bw
subplot(2,2,2), imshow(bw)
end
if valeurcanny==1
h=fspecial('Canny',str2num('valeurthresh'),str2num('valeursigma'))
bw=imfilter(bw,h)
bw=imfill(~bw,'hole')
bw=~bw
subplot(2,2,2), imshow(bw)
end
end
Partager