Informatyka, studia dzienne, mgr II st. Przetwarzanie obrazu i dźwięku 2011/2012 Prowadzący: dr inż. Bartłomiej Stasiak czwartek, 8:30

Podobne dokumenty
Analiza obrazów - sprawozdanie nr 2

Przetwarzanie obrazów wykład 4

Detekcja twarzy w obrazie

Ćwiczenia z grafiki komputerowej 5 FILTRY. Miłosz Michalski. Institute of Physics Nicolaus Copernicus University. Październik 2015

Implementacja filtru Canny ego

Przetwarzanie obrazów rastrowych macierzą konwolucji

Przetwarzanie obrazu

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Analiza obrazu. wykład 4. Marek Jan Kasprowicz Uniwersytet Rolniczy 2009

Spośród licznych filtrów nieliniowych najlepszymi właściwościami odznacza się filtr medianowy prosty i skuteczny.

Parametryzacja obrazu na potrzeby algorytmów decyzyjnych

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Przekształcenia kontekstowe. Filtry nieliniowe Typowy przykład usuwania zakłóceń z obrazu

Diagnostyka obrazowa

Przetwarzanie obrazów. Grupy metod przetwarzania obrazu. Przetwarzanie jednopunktowe. Przetwarzanie jednopunktowe. Przetwarzanie jednopunktowe

ALGORYTMY PRZETWARZANIA OBRAZÓW Projekt. Aplikacja przetwarzająca obrazy z możliwością eksportu i importu do programu MS Excel.

BIBLIOTEKA PROGRAMU R - BIOPS. Narzędzia Informatyczne w Badaniach Naukowych Katarzyna Bernat

Projekt 2: Filtracja w domenie przestrzeni

Ćwiczenie 2. Przetwarzanie graficzne plików. Wprowadzenie teoretyczne

Diagnostyka obrazowa

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 8 AiR III

Zadanie 3: Liczenie winogron

Wyższa Szkoła Informatyki Stosowanej i Zarządzania WIT

Ćwiczenia z grafiki komputerowej 4 PRACA NA WARSTWACH. Miłosz Michalski. Institute of Physics Nicolaus Copernicus University.

Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 9. Przetwarzanie sygnałów wizyjnych. Politechnika Świętokrzyska.

Politechnika Świętokrzyska. Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 8. Filtracja uśredniająca i statystyczna.

Grafika komputerowa. Zajęcia IX

Analiza i Przetwarzanie Obrazów. Szyfrowanie Obrazów. Autor : Mateusz Nawrot

Komputerowe obrazowanie medyczne

Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 11. Filtracja sygnałów wizyjnych

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

WOJSKOWA AKADEMIA TECHNICZNA

WYKŁAD 3. Przykłady zmian w obrazie po zastosowaniu Uniwersalnego Operatora Punktowego

Grafika komputerowa. Dr inż. Michał Kruk

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 7 AiR III

Przekształcenia punktowe

Ćwiczenie 6. Transformacje skali szarości obrazów

Wyższa Szkoła Informatyki Stosowanej i Zarządzania Warsaw School of Information Technology WIT

Metody komputerowego przekształcania obrazów

KRYPTOGRAFIA I OCHRONA DANYCH PROJEKT

Przetwarzanie obrazów wykład 2

Formaty obrazów rastrowych biblioteki PBM

Przetwarzanie obrazu

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 10 AiR III

Rozpoznawanie Twarzy i Systemy Biometryczne

Podstawy OpenCL część 2

Wykrywanie twarzy na zdjęciach przy pomocy kaskad

Filtracja obrazu operacje kontekstowe

Znak wersja podstawowa

Filtracja splotowa obrazu

Diagnostyka obrazowa

Zadanie 1: Piętnastka - uzupełnienie

Maskowanie i selekcja

Diagnostyka obrazowa

Analiza obrazów - sprawozdanie nr 3

Filtracja obrazu operacje kontekstowe

Techniki wizualizacji. Ćwiczenie 4. Podstawowe algorytmy przetwarzania obrazów

Plan wykładu. Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie. informatyka +

Algorytmy graficzne. Nieliniowa filtracja obrazów monochromatycznych

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 3 AiR III

Filtracja w domenie przestrzeni

Akademia Górniczo - Hutnicza im. Stanisława Staszica w Krakowie. Projekt. z przedmiotu Analiza i Przetwarzanie Obrazów

Analiza obrazów. Segmentacja i indeksacja obiektów

Proste metody przetwarzania obrazu

ZAZNACZENIA. Zaznaczenia (inaczej maski) służą do zaznaczania obszarów rysunku.

GRAFIKA RASTROWA. WYKŁAD 1 Wprowadzenie do grafiki rastrowej. Jacek Wiślicki Katedra Informatyki Stosowanej

Rekonstrukcja obrazu (Image restoration)

Antyaliasing w 1 milisekundę. Krzysztof Kluczek

Obraz jako funkcja Przekształcenia geometryczne

Podstawy Przetwarzania Sygnałów

Wyrównanie ciągu poligonowego dwustronnie nawiązanego metodą przybliżoną.

Instrukcja użytkownika ARSoft-WZ3

Odciski palców ekstrakcja cech

Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp. autor: Łukasz Chlebda

ANALIZA I PRZETWARZANIE OBRAZÓW

Cała prawda o plikach grafiki rastrowej

Histogram obrazu, modyfikacje histogramu

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

Instytut Fizyki Politechniki Łódzkiej Laboratorium Metod Analizy Danych Doświadczalnych Ćwiczenie 3 Generator liczb losowych o rozkładzie Rayleigha.

GIMP Grafika rastrowa (Ćwiczenia cz. 2)

Rozpoznawanie obrazów na przykładzie rozpoznawania twarzy

Zbigniew Sołtys - Komputerowa Analiza Obrazu Mikroskopowego 2016 część 7

Filtracja liniowa (metody konwolucyjne, tzn. uwzględniające pewne otoczenie przetwarzanego piksla):

PIXLR EDITOR - Autor: mgr inż. Adam Gierlach

Grafika Komputerowa Wykład 1. Wstęp do grafiki komputerowej Obraz rastrowy i wektorowy. mgr inż. Michał Chwesiuk 1/22

Raport. Bartosz Paprzycki UMK 2009/2010

ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM)

Przetwarzanie obrazów

Analiza danych z nowej aparatury detekcyjnej "Pi of the Sky"

Wybrane zagadnienia w pracy z danymi rastrowymi w ArcGIS Marcin Paź Esri Polska

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

Zastosowanie Informatyki w Medycynie

PRZETWARZANIE SYGNAŁÓW

Politechnika Świętokrzyska. Laboratorium. Przetwarzanie obrazów medycznych. Ćwiczenie 5. Filtracja kontekstowa obrazów.

Filtracja obrazów. w dziedzinie częstotliwości. w dziedzinie przestrzennej

Zbigniew Sołtys - Komputerowa Analiza Obrazu Mikroskopowego 2016 część 5

Spis treści. Adobe Photoshop lab. 2 Jacek Wiślicki,

PROPOZYCJE TEMATÓW PROJEKTOWYCH PROJEKTOWANIE OPROGRAMOWANIA SYSTEMÓW

Cechy formatu PNG Budowa bloku danych Bloki standardowe PNG Filtrowanie danych przed kompresją Wyświetlanie progresywne (Adam 7)

Transkrypt:

Informatyka, studia dzienne, mgr II st. semestr I Przetwarzanie obrazu i dźwięku 2011/2012 Prowadzący: dr inż. Bartłomiej Stasiak czwartek, 8:30 Data oddania: Ocena: Grzegorz Graczyk 178717 Andrzej Stasiak 178736 Zadanie 1: Szkielet aplikacji do przetwarzania i analizy obrazów, operacje podstawowe, usuwanie szumu, modyfikacje histogramu, filtracja liniowa i nieliniowa, splot. 1. Cel Celem zadania było stworzenie szkieletu aplikacji służącej do przetwarzania obrazów. Aplikacja powinna zawierać podstawowe filtry oraz trzy filtry przydzielone indywidualnie do grupy: Wyjściowa gęstość prawdopodobieństwa podana wzorem Raleigha Wydobywania szczegółów z tła: południe, południowy - zachód, zachód, północny zachód Operator Sobela 2. Wprowadzenie Filtracja obrazu jest to rodzaj operacji wykonywanej na pikselach obrazu źródłowego, w wyniku której otrzymywany jest inny obraz wyjściowy. Wartość przetworzonego piksela może zależeć od wartości innych pikseli z jego otoczenia, dlatego jest to przekształcenie kontekstowe. SVN: https://serce.ics.p.lodz.pl/svn/labs/poid/bs_czw0830/idgrupy/ zadanie1 1

Operacja splotu to rodzaj filtra, w której wartość piksela obrazu wyjściowego jest średnią ważoną pewnego jego otoczenia. Wartość poszczególnych wag opisana jest maską filtru p o [n, m] = ( M[a, b] p i [m a, n b])/k a b W tym wzorze, jak i w innych wzorach użyto oznaczeń: p i [n, m] oznacza wartość piksela o współrzędnych n i m obrazu wejściowego, a p o [n, m] - obrazu wyjściowego. Wartości pikseli należą do zakresu [0, 1]. Ponadto M oznacza maskę filtru, a K - sumę wag maski (jeśli suma wynosi 0, wtedy K = 1). 2.1. RGB i HSV Omawiane rozwiązanie zadania opiera się na wykonywaniu filtrów na poszczególnych kanałach obrazu, przy czym w zależności od wybranej opcji za kanały traktowane mogą być wartości poszczególnych składowych modelu RGB lub wartości składowych modelu HSV. Do przekształcenia między tymi modelami użyto poniższego algorytmu (przy założeniu, że wartość H zawarta jest w przedziale [0, 360), a R,G,B,S i V - w przedziale [0, 1]: V = max(r,g,b) S = V - min(r,g,b) if R=V: H = (G-B)/S if G=V: H = (B-R)/S if B=V: H = (R-G)/S Dla przekształcenia współrzędnych z przestrzeni HSV do RGB użyto następującej metody: H = H/60; i = floor(h); f = H-i; p = V*(1-S); q = V*(1-(S*f)); t = V*(1-(S*(1-f))); IF i=0: R,G,B = V,t,p IF i=1: R,G,B = q,v,p IF i=2: R,G,B = p,v,t IF i=3: R,G,B = p,q,v IF i=4: R,G,B = t,p,v IF i=5: R,G,B = V,p,q 2

2.2. Opis przekształceń Poniżej omówione są poszczególne metody zaimplementowane w ramach zadania. Negacja Zmiana jasności p o [n, m] = 1 p i [n, m] gdzie x to parametr przekształcenia. Zmiana kontrastu p o [n, m] = p i [n, m] + x p o [n, m] = x(p i [n, m] 1 2 ) + 1 2 Użycie powyższego wzoru powoduje, że wartość 1/2 jest punktem stałym przekształcenia. Usuwanie szumów Dwa filtry przeznaczone są usuwania szumów z obrazu: filtr medianowy i filtr ze średnią arytmetyczną. Maska jest kwadratem o danym boku, a działanie filtra polega na znalezieniu odpowiednio mediany lub średniej arytmetycznej dla pikseli z obszaru maski. Do obiektywnej oceny działania filtru użyty jest błąd średniokwadratowy. Wartość błędu średniokwadratowego wyliczana jest ze wzoru: w h (p[i, j] p x [i, j]) 2 (1) i=1 i=1 gdzie w i h to szerokość i wysokość obrazów, p to oryginalny obraz, a p x to obraz poddany przekształceniom. Metody histogramowe Dla danego obrazu histogramy tworzone są dla każdego z kanałów (mogą to być zarówno kanały RGB jak i HSV). Utworzenie histogramu polega na przeiterowaniu po wszystkich pikselach obrazu i zliczeniu wystąpień poszczególnych wartości. Przedstawiony wykres może być ponadto poddany wykładzeniu za pomocą ważonej średniej kroczącej o wybranej liczbie próbek. Przekształcenie obrazu oparte o dostosowanie histogramu do określonej charakterystyki polega na zmianie wszystkich wartości pikseli według odpowiedniego wzoru. Rozkład Releigha jest to rozkład, którego gęstość prawdopodobieństwa określa wzór: f(x) = ( ) x2 x exp 2σ 2 3 σ 2

gdzie σ jest parametrem rozkładu. Aby uzyskać taki rozkład, należy dokonać przekształcenia obrazu: p o [n, m] = p min + 2α 2 ln( 1 N p[n,m] q=0 H(q)) 1 1 2 (2) gdzie funkcja H odpowiada histogramowi, tzn. H(n) oznacza liczbę pikseli obrazu, których wartość wynosi n. Metody oparte o splot Splot wykuje się zgodnie z równaniem (1). Maski wykorzystane do poszczególnych podzadań są następujące (wszystkie stosują wydobywanie szczegółów z tła, podany jest jedynie kierunek): południe: 1 1 1 1 2 1 1 1 1 południowy zachód zachód 1 1 1 1 2 1 1 1 1 północny zachód 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 3. Opis implementacji Szkielet aplikacji powstał w języku c++ wykorzysującą bibliotekę png++ (wrapper na libpng). Przygotowana aplikacja przyjmuje wszystkie argumenty z linii poleceń dzięki czemu możliwe jest wsadowe przetwarzanie obrazów. W celu stworzenia interfejsu użytkownika przygotowano serwer HTTP w języku Python oraz aplikację z wykorzystaniem technologii HTML5 i jquery UI. W aplikacji przetwarzającej obrazy zastosowano polimorfizm. Stworzono bazowy, abstrakcyjny typ filtra, zaś wszystkie istniejące filtrów dziedziczą z niego oferując jednolity interfejs. Zastosowano również dziedziczenie wielostopniowe w miejscach, w których logika filtrów była podobna. 4. Materiały i metody Badaniu poddane zostały następujące elementy: Obiektywna ocena filtrów uśredniających oraz medianowych w oparciu o zaszumiony obraz lenac za pomocą obliczenia błędu średniokwadratowego. Subiektywna ocena filtrów uśredniających oraz medianowych. 4

Subiektywna ocena masek służących do wydobywania szczegółów z tła oraz operatora Sobela. Ocena czasu działania filtru niezoptymalizowanego oraz zoptymalizowanego. 5. Wyniki Usuwanie szumów filtrem uśredniającym oraz medianowym Przeprowadzono szereg testów licząc błąd średniokwadratowy dla różnych plików i masek. Czerwony Zielony Niebieski lenac impulse1.png 143.304344 155.045223 168.422520 lenac impulse1.png stat 2 med 75.675335 84.563816 70.402824 lenac impulse1.png stat 3 med 18.200794 18.072132 18.593906 lenac impulse1.png stat 4 med 64.752079 69.551716 59.732689 lenac impulse1.png stat 5 med 47.130733 46.862690 49.210106 lenac impulse1.png stat 6 med 85.213707 89.538643 81.283859 lenac impulse1.png stat 2 avg 83.782963 89.947353 85.493198 lenac impulse1.png stat 3 avg 41.226849 42.632599 43.644218 lenac impulse1.png stat 4 avg 75.685379 80.455849 72.346508 lenac impulse1.png stat 5 avg 74.255367 77.045708 73.850159 lenac impulse1.png stat 6 avg 106.596363 113.976517 100.140697 lenac impulse2.png 551.723919 575.789413 605.421501 lenac impulse2.png stat 2 med 89.330269 121.354790 103.174484 lenac impulse2.png stat 3 med 18.585258 18.503342 18.979652 lenac impulse2.png stat 4 med 65.456070 69.540672 59.710743 lenac impulse2.png stat 5 med 47.571548 47.334972 49.666416 lenac impulse2.png stat 6 med 85.478329 89.603863 81.550682 lenac impulse2.png stat 2 avg 188.661606 197.178185 195.642696 lenac impulse2.png stat 3 avg 91.450565 92.015781 94.438419 lenac impulse2.png stat 4 avg 106.360664 109.322289 101.317360 lenac impulse2.png stat 5 avg 96.670719 96.930023 93.866631 lenac impulse2.png stat 6 avg 124.202805 128.881668 114.608822 lenac impulse3.png 810.043518 865.978905 924.488590 lenac impulse3.png stat 2 med 115.277275 177.693069 165.394058 lenac impulse3.png stat 3 med 20.153786 20.211266 20.937443 lenac impulse3.png stat 4 med 66.606937 71.034000 60.873924 lenac impulse3.png stat 5 med 48.445217 48.205322 50.873940 lenac impulse3.png stat 6 med 85.805782 90.878387 82.299351 lenac impulse3.png stat 2 avg 257.453968 270.873535 277.330414 lenac impulse3.png stat 3 avg 125.702576 127.647743 132.614529 lenac impulse3.png stat 4 avg 127.760727 130.699390 123.939644 lenac impulse3.png stat 5 avg 113.237190 112.844364 109.699535 lenac impulse3.png stat 6 avg 136.971966 140.940826 126.493172 5

Czerwony Zielony Niebieski lenac normal1.png 145.636124 150.783951 160.420536 lenac normal1.png stat 2 med 83.653976 90.471268 79.236446 lenac normal1.png stat 3 med 20.245979 20.370834 20.593571 lenac normal1.png stat 4 med 66.041016 70.426872 60.713627 lenac normal1.png stat 5 med 48.196480 48.334393 50.180614 lenac normal1.png stat 6 med 85.830433 90.061649 81.932560 lenac normal1.png stat 2 avg 84.193928 88.206310 82.540218 lenac normal1.png stat 3 avg 41.066071 41.922825 42.362225 lenac normal1.png stat 4 avg 75.632008 79.852966 71.100010 lenac normal1.png stat 5 avg 73.913311 76.815754 73.068344 lenac normal1.png stat 6 avg 106.491707 113.666363 99.451481 lenac normal2.png 461.855167 477.643185 505.269489 lenac normal2.png stat 2 med 208.618790 232.274155 221.852478 lenac normal2.png stat 3 med 44.110512 43.824867 43.023026 lenac normal2.png stat 4 med 76.816811 80.030640 69.907536 lenac normal2.png stat 5 med 58.970078 59.214165 59.499046 lenac normal2.png stat 6 med 93.020519 96.695873 87.450619 lenac normal2.png stat 2 avg 166.339050 169.570457 169.143101 lenac normal2.png stat 3 avg 79.866760 79.807503 80.814804 lenac normal2.png stat 4 avg 99.092873 101.855915 92.980434 lenac normal2.png stat 5 avg 90.406849 92.477474 87.190880 lenac normal2.png stat 6 avg 119.161072 125.160686 109.481564 lenac normal3.png 1006.748993 1078.708492 1187.078884 lenac normal3.png stat 2 med 344.205204 448.117767 448.768887 lenac normal3.png stat 3 med 59.960594 63.148510 63.862606 lenac normal3.png stat 4 med 80.992424 87.084538 76.319046 lenac normal3.png stat 5 med 61.566437 62.565208 62.521244 lenac normal3.png stat 6 med 94.974510 99.913284 89.895218 lenac normal3.png stat 2 avg 308.339767 324.769596 341.315430 lenac normal3.png stat 3 avg 149.804909 152.258369 158.197830 lenac normal3.png stat 4 avg 142.284786 145.349842 137.131340 lenac normal3.png stat 5 avg 123.297176 123.239483 116.070850 lenac normal3.png stat 6 avg 145.015182 148.775875 129.792645 lenac uniform1.png 227.820488 234.442875 245.670879 lenac uniform1.png stat 2 med 115.067974 123.808784 113.373409 lenac uniform1.png stat 3 med 28.191917 28.313904 27.972359 lenac uniform1.png stat 4 med 69.770748 73.365513 63.365326 lenac uniform1.png stat 5 med 52.810982 52.900917 54.275814 lenac uniform1.png stat 6 med 88.690842 91.937744 83.620518 lenac uniform1.png stat 2 avg 104.761059 109.275543 104.385780 lenac uniform1.png stat 3 avg 51.044174 51.458603 51.923500 lenac uniform1.png stat 4 avg 81.403625 85.304623 76.604000 lenac uniform1.png stat 5 avg 78.034439 80.572586 76.578289 lenac uniform1.png stat 6 avg 109.370609 116.406750 101.971695 6

Czerwony Zielony Niebieski lenac uniform2.png 153.795074 160.514660 174.907372 lenac uniform2.png stat 2 med 78.696888 86.889198 74.017094 lenac uniform2.png stat 3 med 19.262367 19.182144 19.744659 lenac uniform2.png stat 4 med 65.620331 69.926514 60.704868 lenac uniform2.png stat 5 med 47.719303 47.733776 50.166706 lenac uniform2.png stat 6 med 85.600723 89.999008 82.417507 lenac uniform2.png stat 2 avg 85.739738 91.368404 86.513180 lenac uniform2.png stat 3 avg 42.384865 43.030518 44.003300 lenac uniform2.png stat 4 avg 76.445637 80.952435 72.411930 lenac uniform2.png stat 5 avg 74.748714 77.159828 73.929298 lenac uniform2.png stat 6 avg 107.168427 114.283531 100.421638 lenac uniform3.png 1605.790291 1732.620716 1877.193779 lenac uniform3.png stat 2 med 343.711346 511.126499 525.085857 lenac uniform3.png stat 3 med 49.320606 52.370293 48.610676 lenac uniform3.png stat 4 med 79.849575 84.171585 71.845760 lenac uniform3.png stat 5 med 60.043892 60.665310 59.644615 lenac uniform3.png stat 6 med 94.775726 98.681335 88.596237 lenac uniform3.png stat 2 avg 477.837639 493.864796 514.569077 lenac uniform3.png stat 3 avg 237.002003 234.633469 239.486088 lenac uniform3.png stat 4 avg 202.339092 196.125534 183.924557 lenac uniform3.png stat 5 avg 169.227242 160.665771 149.268749 lenac uniform3.png stat 6 avg 184.181332 178.622791 154.247066 Poniżej zamieszczone obrazki zostały umieszczone w sprawozdaniu ze zmniejszoną rozdzielczością, która uniemożliwia zauważenie szczegółów. Dyskusja wyników została przeprowadzona jednak w oparciu o obrazki w pełnej rozdzielczości. Obrazek oryginalny: 7

Obrazek zaszumiony Filtr medianowy Wydobywanie szczegółów z tła: 8 Filtr uśredniający

Operator Sobela: Czasy przetwarzania obrazu 1200x1200, mediana z 11 prób: Brak filtra Filtr niezoptymalizowany Filtr zoptymalizowany 1.5µs 210ms 37ms 9

Należy zauważyć, że czasy wczytywania i zapisywania obrazu tego rozmiaru wynoszą między 400-500 milisekund - zależnie od jego zawartości. 6. Dyskusja W wynikach można zaobserwować znaczną przewagę filtru medianowego nad filtrem uśredniającym podczas usuwania szumów. W większości wypadków najskuteczniejsza była maska o rozmiarze 3 wyjątek stanowiły maski uśredniające dla intensywnie zaszumionych obrazów tu najskuteczniejsze były maski o rozmiarach 5. Zauważono również mniejszą skuteczność filtrów o rozmiarach parzystych. Można domniemywać, iż wynika to z konieczności przesunięcia środka maski o pół piksela. Ocena subiektywna potwierdza powyższą tezę. Obrazki nawet w pomniejszeniu widocznie zmieniają swoją jakość (zwłaszcza przy filtrze medianowym). Na powiększeniu wyraźnie widać, że filtr medianowy pozbywa się znacznej części szumów. Skutkiem ubocznym jest to, że również część oryginalnych szczegółów obrazu o rozmiarach pojedynczych pikseli jest tracona. W przypadku uśredniania szum przestaje przypominać pierwotny szum ulegając znaczącemu rozmyciu, jednak pozostaje widoczny. Powyższy rezultat bardzo łatwo uzasadnić. W wypadku filtru medianowego szum nie zostanie usunięty tylko, gdy przynajmniej 4 jego sąsiednie piksele (w przypadku maski 3x3) również będą zaszumione. Gdyby jednak taka sytuacja powtarzała się dla znaczącej liczby pikseli obraz byłby w znacznym stopniu pokryty szumem. W przypadku filtru uśredniającego każdy zaszumiony piksel stanowi jedynie 4% wyniku (użyto maski 5x5), czyniąc każdy piksel szumu mało znaczącym. Z drugiej strony każdy piksel szumu wpływa na 25 pikseli powodując zauważalne zniekształcenia całości obrazu. Interpretacja filtrów pozwalających wykrywać krawędzie jest znacznie trudniejsza. Można dostrzec, iż filtry z określonym kierunkiem dają podobne efekty, lecz można odnaleźć szczegóły sugerujące która maska została użyta (brak pionowej kreski po lewej stronie na pierwszym obrazku). W wypadku operatora Sobela wszystkie krawędzie zostały wyróżnione intensywnie kontrastującym białym kolorem - widoczne są jednak liczne przejaśnienia w miejscach, gdzie brak fizycznych krawędzi. Optymalizacja filtru, mimo iż filtr wykorzystuje wszystkie piksele z obszaru 3x3 pozwoliła uzyskać 5 krotne przyśpieszenie. Możemy jednak domniemywać, że główną zasługą tego przyśpieszenia mogły być optymalizacje procesora, które umożliwiły przeniesienie części dodawań do rejestrów procesora. Nie zostało to zbadane, jednak można podejrzewać, że optymalizacje filtrów bazujących na większych maskach będą bardziej skuteczne - w szczególności czas przetwarzania jednego piksela może ulec zmniejszeniu z O(k 2 ) przy metodzie naiwnej nawet do O(1) przy prostych maskach. Interesującą obserwacją okazały się jednak nieudane próby pomiaru wydajności uwzględniające czasy wczytywania i zapisywania plików png. Plik po przetworzeniu posiadał znaczną część czarnych pikseli, co powodowało 10

jego szybsze zapisywanie. W efekcie porównując czas działania programu bez żadnego filtru z czasem działania programu z szybkim filtrem można było wysnuć błędny wniosek, jakoby filtr działał w ujemnym czasie. Ponieważ w oryginalnej postaci to przekształcenie powoduje odwrócenie koloru (tzn. piksele ciemniejsze od innych stają się jaśniejsze od innych po przekształceniu), po wykaniu przekształcenia zgodnie ze wzorem (2), wykonywana jest dodatkowo negacja wybranych kanałów. W trakcie eksperymentów stwierdzono, że przekształcenie zachowuje się w sposób pożądany (tzn. nie powoduje nadmiernej utraty informacji poprzez nadmierne rozjaśnienie, ani zaciemnienie obrazu) dla parametru α z zakresu około [0.1, 1.5]. Poniżej przedstawione są dwa histogramy odpowiadające obrazowi przed i po przekształceniu (dla α = 0.2) dla kanału V w układzie HSV oraz te obrazy. Widoczne jest, że kanały H i S nie uległy zmianie w wyniku przekształcenia (niewielkie odchylenia wynikają z faktu, że obraz przechowywany jest w postaci RGB o wartościach dyskretnych, w związku z czym zaokrąglenia przy przekształcaniach mogą powodować drobne zniekształcenia). Na histogramie krzywa wartości (niebieska) odpowiada przeciwnemu co do znaku wykresowi rozkładu Raleigha, potwierdzając poprawność wykonanego przekształcenia. 7. Wnioski Filtr medianowy dobrze radzi sobie z likwidowaniem szumu w obrazach. Filtr uśredniający rozmazuje szum, zostawiając jednak zniekształcenia w obrazie. Ogólna implementacja filtru liniowego jest znacznie wolniejsza niż implementacja maski bezpośrednio w kodzie. Filtry bazujące na modyfikacji histogramu wartości w modelu barw HSV modyfikują nieznacznie wartości odcienia i nasycenia z powodu docelowej reprezentacji ich w modelu RGB. W wypadku filtrów wykrywających krawędzie udało się jedynie potwierdzić subiektywnie ich działanie. 11