WOJSKOWA AKADEMIA TECHNICZNA LABORATORIUM CYFROWE PRZETWARZANIE SYGNAŁÓW Stopień, imię i nazwisko prowadzącego Imię oraz nazwisko słuchacza Grupa szkoleniowa Data wykonania ćwiczenia dr inż. Andrzej Wiśniewski Grzegorz Pol I7GS.. r. SPRAWOZDANIE Z PRACY LABORATORYJNEJ NR
. Dokonać filtracji obrazu (funkcja conv) filtrami o odpowiedziach impulsowych: a) Dolnoprzepustowy (wygładzanie, uśrednianie) h pokazać wpływ wartości parametru shape w funkcji conv. Wynik zaimplementowanego kodu w programie Matlab: figure(); subplot(,,) imshow(obraz,[]); title( Cameraman.tif ) H=[ ; ; ] h=(/)*h; subplot(,,) nowy_obraz=zeros(rozmiar); nowy_obraz=conv(obraz,h, valid ); imshow(nowy_obraz,[]) title( Cameraman.tif, parametr: valid ) subplot(,,3) nowy_obraz=zeros(rozmiar); nowy_obraz=conv(obraz,h, full ); imshow(nowy_obraz,[]) title( Cameraman.tif, parametr: full ) subplot(,,4) nowy_obraz3=zeros(rozmiar); nowy_obraz3=conv(obraz,h, same ); imshow(nowy_obraz3,[]) title( Cameraman.tif, parametr: same )
b) różniczkujący - górnoprzepustowy (detekcja krawędzi poziomych lub pionowych): H: h h H=[ ; ;- - -]; H=[ ; ; - - -]; H3=[ ; -]; H3=[ ; - -; - -]; H4=[ - ; - 4 -; - ]; nowy_obraz4=zeros(rozmiar); nowy_obraz4=conv(obraz,h,'same'); figure(5) imshow(nowy_obraz4,[]) title('obraz po przepuszczeniu przez filtr rozniczkujacy gornoprzepustowy H') nowy_obraz5=zeros(rozmiar); nowy_obraz5=conv(obraz,h,'same'); figure(6) imshow(nowy_obraz5,[]) title('obraz po przepuszczeniu przez filtr rozniczkujacy gornoprzepustowy H') nowy_obraz5=zeros(rozmiar); nowy_obraz5=conv(obraz,h3,'same'); H:
a) różniczkujący - górnoprzepustowy (detekcja krawędzi ukośnych): h 3 h 3 H3 nowy_obraz5=zeros(rozmiar); nowy_obraz5=conv(obraz,h3,'same'); figure(7) imshow(nowy_obraz5,[]) title('obraz po przepuszczeniu przez filtr rozniczkujacy gornoprzepustowy H3') nowy_obraz5=zeros(rozmiar); nowy_obraz5=conv(obraz,h3,'same'); figure(8) imshow(nowy_obraz5,[]) title('obraz po przepuszczeniu przez filtr rozniczkujacy gornoprzepustowy H3') H3
a) podwójnie różniczkujący - górnoprzepustowy (detekcja krawędzi o dowolnych kierunkach): H4 h 4 4 - laplasjan nowy_obraz5=zeros(rozmiar); nowy_obraz5=conv(obraz,h4,'same'); figure(9) imshow(nowy_obraz5,[]) title('obraz po przepuszczeniu przez filtr podwojnie rozniczkujacy gornoprzepustowy H4')
a) nieliniowy: medianowy (usuwanie szumu impulsowego): H5 h 5 med 4 7 5 8 3 6 9 figure(7) obraz_m = medfilt(obraz); imshow(obraz_m) title('obraz po przefiltrowaniu filtrem medianowym') a) nieliniowy: erozji (ścienianie): h 6 min 4 7 8 3 6 9 H6 figure(8) nhood=[ ; ; ] bufor=strel(nhood); obraz_er = imerode(obraz, bufor) imshow(obraz_er) title('obraz po przefiltrowaniu filtrem erozyjnym')
a) własny eksperymentalny H6 h 7 4 3 3 3 figure(9) Hwlasne=[ 3; 3; 4 3]; obrazekwlasny=conv(obraz,hwlasne,'same'); imshow(obrazekwlasny,[]); title('obraz po przefiltrowaniu wlasnym filtrem, efekt rozmycia'). Wykonać operację wyostrzenia obrazu poprzez złożenie wyniku filtracji górnoprzepustowej z obrazem pierwotnym (suma). [obraz,kolor]=imread('cameraman','tif'); rozmiar=size(obraz); H=[ ; ;- - -]; nowy_obraz4=zeros(rozmiar); nowy_obraz4=conv(obraz,h,'same'); nowy_obraz_suma=zeros(rozmiar); for i=:56 for j=:56 nowy_obraz_suma(i,j)=obraz(i,j)+nowy_obraz4(i,j); end; end; imshow(nowy_obraz_suma,[]); title('zlozenie filtru gornoprzepustowego i obrazu')
3. Wykreślić charakterystyki amplitudowe filtrów (a-d) funkcja mesh. figure() mesh(abs(fft(h))) title('charakterystyka amplitudowa rozniczkujacego - gornoprzepustowego filtru H') Ylabel('Y') figure() mesh(abs(fft(h))) title('charakterystyka amplitudowa rozniczkujacego - gornoprzepustowego filtru H') Ylabel('Y')
figure() mesh(abs(fft(h))) title('charakterystyka amplitudowa rozniczkujacego - dolnoprzepustowego filtru H') Ylabel('Y') figure(3) mesh(abs(fft(h3))) title('charakterystyka amplitudowa rozniczkujacego - górnoprzepustowy (detekcja krawędzi ukośnych) filtru H3') Ylabel('Y')
figure(4) mesh(abs(fft(h3))) title('charakterystyka amplitudowa rozniczkujacego - górnoprzepustowy (detekcja krawędzi ukośnych) filtru H3') Ylabel('Y') figure(5) mesh(abs(fft(h4))) title('charakterystyka amplitudowa podwójnie rozniczkujacego - górnoprzepustowy filtru H4')
4. Wnioski Laboratorium opierało się na poznaniu działania filtrów cyfrowych typu FIR. Punkt a) opierał się na zbadaniu wpływu parametru shape na zadany obraz cameraman.tif. Wartości tego parametru były następujące: full- zwracał dwuwymiarowy splot obrazu i odpowiedzi impulsowej, same zwracał centralną część splotu obrazu i odpowiedzi impulsowej, valid zwracał część splotu, która została obliczona bez zerowych pól. Po zastosowaniu filtru górnoprzepustowego(wykrywanie krawędzi poziomych) można zauważyć, że podkreślone są krawędzie poziome, a krawędzie pionowe są prawie niewidoczne. Następnie został przetestowany filtr górnoprzepustowy z wykrywaniem krawędzi skośnych. W tym przypadku pokreślone są krawędzie skośne, a pionowe i poziome są prawie niewidoczne. W kolejnym punkcie został przetestowany filtr górnoprzepustowy z wykrywaniem wszystkich krawędzi i z analizy obrazu wynika że wszystkie krawędzie są widoczne. Filtry z podpunktów e f i g nadają obrazowi efektów co widać na załączonych screenach ze środowiska Matlab. W punkcie obraz został przefiltrowany przez: obraz pierwotny oraz ten, który został uzyskany przez przefiltrowanie przez filtr górnoprzepustowy z wykrywaniem krawędzi poziomych. Dzięki temu obraz pozostawił kolorystykę obrazu oryginalnego z podkreśleniem krawędzi poziomych. Na koniec, w punkcie 3 zostały pokazane charakterystyki amplitudowe filtrów z punktu a-d, które ukazywały różnice pomiędzy działaniem filtrów