ZSO   - Úloha č.6                                                                                                    Jiří Filip

Odstranění šumu a segmentace obrazu pomocí binární morfologie



Úkol:

Rozsegmentujte obraz na horizontální a vertikální obdélníky. Obraz byl poškozen šumem typu salt and pepper.

Návod
   1.Odstraňte šum pomocí operací opening a closing. Použijte funkce erode a dilate.
   2.Nalezněte horizontální oblasti pomocí operace opening s vhodně tvarovaným strukturním elementem.
   3.Nalezněte vertikální oblasti pomocí operace opening s vhodně tvarovaným strukturním elementem.
   4.Pomocí obrazů získaných v bodech 2 a 3 maskujte vstupní obraz a uložte dva obrazy. Jeden s horizontálními obrazy, druhý s
     vertikálními objekty.

Odevzdání
    Dva obrázky ve formátu tif se segmentovanými objekty.



Původní obraz :

Obraz po otevreni (eroze a dilatace) - strukturní element (10x10)                              a po následném uzavření (dilatace a eroze) - bez šumu
            

Horizontální linie obrazu - strukturni elemet (1x50)                                                    s původním šumem
            

Vertikální linie obrazu - strukturni elemet (50x1)                                                       s původním šumem
            



Výpis programu z MATLABu:
clear all;
close all;
obr=imread('segmorph.tif');
imwrite(obr,'segmorph.jpg','jpg');
imwrite(obr,'segmorph.tif','tif');

figure(1);
colormap('gray');
imshow(obr);
colormap('gray');
title('Puvodni obrazek');

SE=zeros(3,3);  %strukturni element
SE(:)=1;
obr_1 = erode(obr,SE);    %otevreni
obr_1 = dilate(obr_1,SE);
figure(2);
imshow(obr_1);
title('Obrazek po otevreni');
imwrite(obr_1,'po_otevr.jpg','jpg');
imwrite(obr_1,'po_otevr.tif','tif');

SE=ones(10,10);
obr_1 = dilate(obr_1,SE);   %uzavreni
obr_1 = erode(obr_1,SE);
figure(3);
imshow(obr_1);
colormap('gray');
imwrite(obr_1,'bezsumu.jpg','jpg');
imwrite(obr_1,'bezsumu.tif','tif');

title('Obrazek s odstranenym sumem - po otevreni a uzavreni');

SE=ones(1,50);       %vodorovny strukturni element
obr_horiz = erode(obr_1,SE);
obr_horiz = dilate(obr_horiz,SE);
figure(4);
imshow(obr_horiz);
colormap('gray');
imwrite(obr_horiz,'obr_hor.jpg','jpg');
imwrite(obr_horiz,'obr_hor.tif','tif');

title('Horizontalni prvky obrazu');

obr_h_s=double(obr).*double(obr_horiz);
imwrite(obr_h_s,'obr_h_s.jpg','jpg');
imwrite(obr_h_s,'obr_h_s.tif','tif');

figure(5);
imshow(obr_h_s);
title('Puvodni obrazek');
title('Horizontalni prvky obrazu s sumem');
colormap('gray');

SE=ones(50,1);       %svisly strukturni element
obr_vert = erode(obr_1,SE);
obr_vert = dilate(obr_vert,SE);
figure(6);
imshow(obr_vert);
colormap('gray');
imwrite(obr_vert,'obr_vert.jpg','jpg');
imwrite(obr_vert,'obr_vert.tif','tif');
title('Vertikalni prvky obrazu');

obr_v_s=double(obr).*double(obr_vert);
imwrite(obr_v_s,'obr_v_s.jpg','jpg');
imwrite(obr_v_s,'obr_v_s.tif','tif');
figure(7);
imshow(obr_v_s);
title('Vertikalni prvky obrazu s sumem');
colormap('gray');



ZSO - úloha č.6                                                                                                                                      10.12.1999  Jiří Filip