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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
| function ex_uicontrol
filenames = {'5_carres.bmp' '5_cercles.bmp' 'lenna.png'};
sigmaInitValue = 0.2;
fig = figure('units','normalized','outerposition',[0 0 1 1]);
uicontrol('Style','text',...
'Position',[580 400 120 20],...
'String','Sigma');
uicontrol('Style','text',...
'Position',[580 300 120 20],...
'String', num2str(sigmaInitValue, '%.2f'), ...
'Tag', 'SigmaText');
uicontrol('Style', 'popup',...
'String', filenames,...
'Position', [580 550 100 50],...
'Callback', @setfile, ...
'Tag', 'FileList');
uicontrol('Style', 'slider',...
'Min',0,'Max',2,'Value',sigmaInitValue,...
'Position', [580 350 240 30],...
'Callback', @setsigma, ...
'Tag', 'SigmaSlider');
data = guihandles(fig);
data.filenames = filenames;
data.numFile = 1;
data.sigma = sigmaInitValue;
im = imread(data.filenames{data.numFile});
im = im2double(im);
im = rgb2gray(im);
gfilter = fspecial('log', [5 5], data.sigma);
im_conv = conv2(im,gfilter);
data.axes(1) = subplot(1,2,1);
title('Image originale');
data.axes(2) = subplot(1,2,2);
title('Image lissée');
axis(data.axes, 'off')
imshow(im, 'Parent', data.axes(1));
imshow(im_conv, 'Parent', data.axes(2));
guidata(fig,data)
end
function setfile(hObj,event)
data = guidata(gcbf);
data.numFile = get(hObj,'Value');
im = imread(data.filenames{data.numFile});
im = im2double(im);
im = rgb2gray(im);
gfilter = fspecial('log', [5 5], data.sigma);
im_conv = conv2(im,gfilter);
imshow(im, 'Parent', data.axes(1));
imshow(im_conv, 'Parent', data.axes(2));
set(data.SigmaText, 'String', num2str(data.sigma, '%.2f'));
guidata(gcbf, data);
end
function setsigma(hObj,event)
data = guidata(gcbf);
data.sigma = get(hObj,'Value');
im = imread(data.filenames{data.numFile});
im = im2double(im);
im = rgb2gray(im);
gfilter = fspecial('log', [5 5], data.sigma);
im_conv=conv2(im,gfilter);
imshow(im, 'Parent', data.axes(1));
imshow(im_conv, 'Parent', data.axes(2));
set(data.SigmaText, 'String', num2str(data.sigma, '%.2f'));
guidata(gcbf, data);
end |
Partager