ZSO - Úloha č.6 Jiří FilipOdstranění šumu a segmentace obrazu pomocí binární morfologie
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.
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
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');