I9G2S1 Węgrecki Wojciech Lab4

background image

SPRAWOZDANIE Z ĆWICZENIA

LABORATORYJNEGO NR 4

Wykonał: Wojciech Węgrecki

Grupa: I9G2S1

background image

Treść zadania:

4.1
Wyświetlenie obrazu oraz jego widma amplitudowego w postaci obrazu,
wykonanie operacji odbicia widma (fftshift).
4.2
Wykonaj operację na widmie obrazu polegającą na usunięciu z widma
elementów poprzez wymnożenie tablicowe jego elementów przez
elementy macierzy maski (filtracja dolnoprzepustowa - LP):

Wykonaj transformatę odwrotną i wyświetl obraz. Porównaj z
oryginałem.

4.3
Czynności z zadania 4.2 wykonaj dla macierzy maski (filtracja
górnoprzepustowa - HP):

4.4
Korzystając z DFT zwiększ rozdzielczość obrazu.

4.5
Korzystając z DFT zmniejsz rozdzielczość obrazu.




1

1

1

1

0

0

0

0

0

1

background image

Wykonanie zadania:


4.1

Zadanie polegało na wyświetleniu obrazu oraz jego widma
amplitudowego w postaci obrazu oraz wykonaniu operacji odbicia widma
(fftshift) (rys. 1).


Wszystkie te operacje realizuje kod:

obraz = imread(

'Lisaw.bmp'

);

%wczytanie obrazka

figure(1)

subplot(3,1,1)

imshow(obraz)

%wyświetlenie obrazka

title(

'Obraz Lisaw.bmp'

)

obraz_dft=fft2(obraz);

%wykonanie DFT

subplot(3,1,2)

imshow(obraz_dft)

%wyświetlenie widma

title(

'Widmo obrazu Lisaw.bmp'

)

subplot(3,1,3)

imshow(fftshift(obraz_dft));

%odbicie i wyświetlenie widma

title(

'widmo obite obrazu Lisaw.bmp'

)

rys. 1 Wyświetlenie obrazka, widma obrazka oraz widma odbitego

background image

4.2

Zadanie polegało na wykonaniu filtracji dolnoprzepustowej. Następnie
należało wykonać transformatę odwrotną i wyświetlić obraz (rys. 2 i 3).

Kod skryptu:

%#########################

%Filtr dolnoprzepustowy

macierz_maska_LP=obraz_dft;

%stworzenie macierzy maski dla

filtru dolnoprzepustowego

obraz_dft1=obraz_dft;

%obraz pomocniczy

[wys,dl]=size(obraz_dft);

%wielkosć obrazka

for

i=1:wys

for

j=1:dl

macierz_maska_LP(i,j)=0;

%wypełnienie całej macierzy

maski dla filtru dolnoprzepustowego zerami

end

;

end

;

for

i=1:20

for

j=1:20

macierz_maska_LP(i,j)=1;

%wypełnienie lewego górnego

rogu jedynkami

macierz_maska_LP(wys-i+1,j)=1;

%wypełnienie lewego

dolnego rogu jedynkami

macierz_maska_LP(i,dl-j+1)=1;

%wypełnienie prawego

górnego rogu jedynkami

macierz_maska_LP(wys-i+1,dl-j+1)=1;

%wypełnienie

prawego dolnego rogu jedynkami

end

end

obraz_dft1=obraz_dft1.*macierz_maska_LP;

%przemnożenie obrazka

przez macierz maskę LP

figure(2)

imshow(uint8(obraz_dft1))

%wyświetlenie widma po filtracji

dolnoprzepustowej

title(

'Widmo po filtracji dolnoprzepustowej'

)

figure(3)

imshow(uint8(real(ifft2(obrazek_dft1))));

%wykonanie

tranformaty odwrotnej i wyświetlenie obrazka po filtracji

title(

'Obraz po filtracji dolnoprzepustowej'

)

background image

rys. 2 Widmo obrazu po filtracji dolnoprzepustowej

rys. 3 Obraz po filtracji dolnoprzepustowej

.


background image

4.3

Zadanie polegało na wykonaniu filtracji górnoprzepustowej. Następnie
należało wykonać transformatę odwrotną i wyświetlić obraz (rys. 4 i 5).

Kod skryptu:

%#########################

%Filtr górnoprzepustowy

macierz_maska_HP=obraz_dft;

%stworzenie macierzy maski dla

filtru górnoprzepustowego

obraz_dft2=obraz_dft;

%obraz pomocniczy

for

i=1:wys

for

j=1:dl

macierz_maska_HP(i,j)=1;

%wypełnienie całej macierzy

maski dla filtru górnoprzepustowego jedynkami

end

;

end

;

for

i=1:50

for

j=1:50

macierz_maska_HP(i,j)=0;

%wypełnienie lewego górnego

rogu zerami

macierz_maska_HP(wys-i+1,j)=0;

%wypełnienie lewego

dolnego rogu zerami

macierz_maska_HP(i,dl-j+1)=0;

%wypełnienie prawego

górnego rogu zerami

macierz_maska_HP(wys-i+1,dl-j+1)=0;

%wypełnienie

prawego dolnego rogu zerami

end

end

obraz_dft2=obraz_dft2.*macierz_maska_HP;

%przemnożenie obrazka

przez macierz maskę HP

figure(4)

imshow(uint8(obraz_dft2));

%wyświeltlenie widma po filtracji

górnoprzepustowej

title(

'Widmo po filtracji górnoprzepustowej'

)

figure(5)

imshow(ifft2(obraz_dft2),colormap(gray));

%wykonanie

tranformaty odwrotnej i wyświetlenie obrazka po filtracji

title(

'Obraz po filtracji górnoprzepustowej'

)

background image

rys. 4 Widmo po filtracji górnoprzepustowej

rys. 5 Obraz po filtracji górnoprzepustowej

background image

4.4

Zadanie polegało na zwiększeniu rozdzielczości za pomocą DFT. Powiększyłem
dany obraz 4-krotnie. Najpierw należało stworzyć macierz o powiększonych
rozmiarach (2*wysokość, 2*długość). Następnie wypełniłem ją jedynkami.
Kolejnym krokiem było przerysowywanie poszczególnych ćwiartek widma
obrazka oryginalnego w

odpowiadające im miejsca widma obrazka

powiększonego (schemat przedstawiony na rys. 6).



1








rys. 6 Schemat powiększania obrazka

Kod skryptu:

%#########################

%Powiększanie obrazka 4-krotnie

wys_pow = 2*wys;

%zwiększanie wysokości

dl_pow = 2*dl;

%zwiększanie długości

powiekszony=ones(wys_pow,dl_pow);

%wypełnienie widma obrazka

powiększonego jedynkami

%przerysowywanie poszczególnych ćwiartek widma obrazka
oryginalnego w

%odpowiadające im miejsce widma obrazka powiększonego

powiekszony(1:wys_pow/4,1:dl_pow/4) =
obraz_dft(1:wys/2,1:dl/2);

powiekszony(1:wys_pow/4,dl_pow-(dl_pow/4-1):dl_pow) =
obraz_dft(1:wys/2,dl/2+1:dl);

powiekszony(wys_pow-(wys_pow/4-1):wys_pow,1:dl_pow/4) =
obraz_dft(wys/2+1:wys,1:dl/2);

background image

powiekszony(wys_pow-(wys_pow/4-1):wys_pow,dl_pow-(dl_pow/4-
1):dl_pow) = obraz_dft(wys/2+1:wys,dl/2+1:dl);

powiekszony = powiekszony*4;

figure(6)

imshow(uint8(powiekszony))

%wyświetlenie widma powiększonego

obrazu

title(

'Widmo powiekszanego obrazu'

)

obrazek_pow=uint8(ifft2(powiekszony));

%wykonanie transformaty

odwrotnej

figure(7)

imshow(obrazek_pow,colormap(gray));

%wyświetlenie powiększonego

obrazu

title(

'Obraz powiekszony 4-krotnie'

)

rys. 7 Widmo obrazka powiększonego

background image

rys. 8 Obrazek powiększony 4-krotnie


4.5

Zadanie polegało na zmniejszeniu rozdzielczości za pomocą DFT.
Pomniejszyłem dany obraz 4-krotnie. Najpierw należało stworzyć macierz o
pomniejszonych rozmiarach (wysokość/2, długość/2). Następnie wypełniłem ją
jedynkami. Kolejnym krokiem było przerysowywanie poszczególnych rogów
widma obrazka oryginalnego w

odpowiadające im miejsca widma obrazka

pomniejszonego (schemat przedstawiony na rys. 9).

rys. 9 Schemat pomniejszania obrazka

background image

Kod skryptu:

%#########################

%Pomniejszanie obrazka 4-krotnie

wys_pom = wys/2;

dl_pom = dl/2;

%przerysowywanie poszczególnych ćwiartek widma obrazka
oryginalnego w

%odpowiadające im miejsce widma obrazka powiększonego

pomniejszony=ones(wys_pom,dl_pom);

pomniejszony(1:wys_pom/2,1:dl_pom/2) =
obraz_dft(1:wys/4,1:dl/4);

pomniejszony(1:wys_pom/2,dl_pom-(dl_pom/2-1):dl_pom) =
obraz_dft(1:wys/4,dl-(dl/4-1):dl);

pomniejszony(wys_pom-(wys_pom/2-1):wys_pom,1:dl_pom/2) =
obraz_dft(wys-(wys/4-1):wys,1:dl/4);

pomniejszony(wys_pom-(wys_pom/2-1):wys_pom,dl_pom-(dl_pom/2-
1):dl_pom) = obraz_dft(wys-(wys/4-1):wys,dl-(dl/4-1):dl);

pomniejszony=pomniejszony/4;

figure(8);

imshow(uint8(pomniejszony));

%wyświetlenie widma

pomniejszonego obrazu

title(

'Widmo pomniejszonego obrazu'

);

obrazek_pom=uint8(ifft2(pomniejszony));

%wykonanie

transformaty odwrotnej

figure(9);

imshow(obrazek_pom,colormap(gray));

%wyświetlenie

pomniejszonego obrazu

title(

'Obraz pomniejszony 4-krotnie'

)

background image

rys. 10 Widmo obrazka pomniejszonego



rys. 11 Obrazek pomniejszony 4-krotnie


background image

WNIOSKI

Filtracja dolnoprzepustowa prowadzi do uzyskania widma, które po wykonaniu
transformaty odwrotnej skutkuje powstaniem obrazu mniej ostrego, o
niewidocznych szczegółach. Im większy jest zakres wypełnienia jedynkami tym
obraz bardziej przypomina oryginał.

Wynikiem filtracji górnoprzepustowej jest widmo, które po transformacji
odwrotnej staje się obrazem , w którym piksele będące mieszanką czerni i bieli
stają się całkowicie czarne, przez co nowopowstały obraz jest w zdecydowanej
większości czarny. Pozostały na nim jedynie białe kontury. Im większy zakres
jest wyzerowany tym obraz wynikowy jest bardziej zaciemniony, nieczytelny i
zawiera coraz słabsze kontury.

Przy kolejnym przekształceniu obrazu dyskretna transformata Fouriera została
wykorzystana do zmiany rozdzielczości obrabianego obrazu. Rysunek w postaci
widma podzielonego na cztery równe narożne obszary został wpisany do
macierzy dwukrotnie większej od początkowych rozmiarów obrazu a pozostałe
miejsca w macierzy pozostały wypełnione wartością „1”. Wykonanie odwrotnej
transformaty Fouriera na wypełnionej w ten sposób macierzy doprowadziło do
powstania obrazu o czterokrotnie zwiększonej rozdzielczości. Dodatkowo
należało wzmocnić wynikowy obraz, żeby nie był przyciemniony.
Niepożądanym efektem powiększenia okazała się utrata jakości obrazu.

Przy zmniejszaniu obrazu nie zostało użyte całe widmo, a jedynie najbardziej
skrajne jego części, z których każda stanowiła 1/16 całości, w rezultacie nowy
obraz powstał na podstawie ¼ oryginalnego widma. Należało je jeszcze
podzielić przez 4, gdyż energia oryginalnego obrazu rozkładana na mniejszym
obszarze sprawiała, że wynikowy obrazek był prześwietlony. Po tym zabiegu w
jakości obrazu nie dało zauważyć się żadnych znaczących strat jakości gdyż na
zmniejszonym rysunku szczegóły są mniej widoczne.

Dyskretna transformata Fouriera przekształca obraz na widmo, na którym
można skutecznie dokonywać modyfikacji. Umiejętne nimi operowanie w
połączeniu z wykorzystanie odwrotnej transformaty Fouriera daje nam szereg
możliwości przekształcania obrazu w środowisku Matlab.


Wyszukiwarka

Podobne podstrony:
I9G2S1 Węgrecki Wojciech sprawozdanie, WAT, SEMESTR V, systemy dialogowe, SDial, SD cwiczenia 5
I9G2S1 Węgrecki Wojciech sprawozdanie lab5
I9G2S1 Węgrecki Wojciech Lab3
I9G2S1 Wegrecki Wojciech lab3
I9G2S1 Wegrecki sprawozdanie, WAT, SEMESTR V, podstawy symulacji
I9G2S1 Skrzypczynski Węgrecki lab2
I9G2S1 Skrzypczynski Wegrecki l Nieznany
I9G2S1 Skrzypczynski Węgrecki lab2
I9G2S1 Skrzypczynski Węgrecki lab1, WAT, SEMESTR V, podstawy bezpieczenstwa informacji
Lab4
4 ŚMIERĆ ŚWIĘTEGO WOJCIECHA
Lab4
lab4 8
Systemy Operacyjne lab4, Politechnika Wrocławska, Systemy Operacyjne
[4]tabelka, Elektrotechnika AGH, Semestr II letni 2012-2013, Fizyka II - Laboratorium, laborki, labo

więcej podobnych podstron