Cyfrowe przetwarzanie obrazów. Część I - podstawy

Slides:



Advertisements
Podobne prezentacje
Video DR-S Cyfrowy rejestrator wideo
Advertisements

Monitory i systemy graficzne
Rozdzielczość (II).
Fotografia Cyfrowa Polega na utrwaleniu obrazu w postaci cyfrowej, a nie, jak w fotografii tradycyjnej, na chemicznym nośniku światłoczułym. Do wykonywania.
Modele oświetlenia Punktowe źródła światła Inne
Krzysztof Skabek, Przemysław Kowalski
Zadanie z dekompozycji
SYSTEMY OBRAZOWANIA System przetwarzania obrazów:
Cyfrowy model powierzchni terenu
Rozdzielczość obrazu bitowego
Przekształcenia afiniczne
UTK Zestaw III.
Systemy dynamiczne 2010/2011Systemy i sygnały - klasyfikacje Kazimierz Duzinkiewicz, dr hab. inż.Katedra Inżynierii Systemów Sterowania 1 Dlaczego taki.
Rozpoznawanie obrazów
Animacja Animacja jest procesem automatycznego generowania serii obrazów, gdy kolejny obraz przedstawia pewną zmianę w stosunku do poprzedniego. Ta definicja.
Usuwanie zakłóceń Rysowanie w przestrzeni dyskretnej powoduje powstanie w obrazie zakłóceń (Aliasing) Metody odkłócania (Antyaliasing) zwiększenie rozdzielczości.
Paweł Kramarski Seminarium Dyplomowe Magisterskie 2
Zapis informacji Dr Anna Kwiatkowska.
Zarządzanie innowacjami
I Grafika wektorowa.
ZESTAW KOMPUTEROWY.
Wykonał: Tomasz Nocek kl. III B
Grafika wektorowa i bitmapa
Modele (graficznej reprezentacji) danych przestrzennych
Fraktale i chaos w naukach o Ziemi
Podstawowe pojęcia i problemy związane z przetwarzaniem plików graficznych.
Wykład III Sygnały elektryczne i ich klasyfikacja
Nauki ścisłe vs. złożoność świata przyrody
MECHANIKA NIEBA WYKŁAD r.
Komputerowe metody przetwarzania obrazów cyfrowych
Elementy składowe komputera
Autor: Justyna Radomska
Budowa komputera.
Zaawansowane techniki renderingu
Mikroprocesory.
Podsystem graficzny i audio
Formaty zdjęć.
GRAFIKA WEKTOROWA I RASTROWA
Elementy zestawu komputerowego
Grafika komputerowa Jest to dziedzina rozwijająca się niezwykle dynamicznie, a jednocześnie wymagająca znacznej mocy obliczeniowej. Łatwo możemy to zaobserwować,
Megapiksele, kolory i szumy - czyli wszystko o matrycach aparatów
Metoda elementów skończonych cd.
SYSTEMY EKSPERTOWE I SZTUCZNA INTELIGENCJA
Grafika komputerowa Jest to dziedzina rozwijająca się niezwykle dynamicznie, a jednocześnie wymagająca znacznej mocy obliczeniowej. Łatwo możemy to zaobserwować,
Procesor – charakterystyka elementów systemu. Parametry procesora.
KARTY DŹWIĘKOWE.
Programowanie strukturalne i obiektowe C++
Grafika i komunikacja człowieka z komputerem
Informatyka +.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Grafika Komputerowa i wizualizacja
Grafika i komunikacja człowieka z komputerem
Obróbka obrazu w komputerze
Grafika i komunikacja człowieka z komputerem
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Informatyka +.
BUDOWA WEWNĘTRZNA KOMPUTERA
Przetwarzanie obrazów
Grafika komputerowa.
Grafika komputerowa – Grafika wektorowa i rastrowa
GRAFIKA RASTROWA DALEJ. Podział grafiki komputerowej ze względu na sposób powstawania obrazu: GRAFIKA WEKTOROWA GRAFIKA KOMPUTEROWA GRAFIKA RASTROWA.
Grafika 2d - Podstawy. Kontakt Daniel Sadowski FTP: draver/GRK - wyklady.
Rektyfikacja zdjęć Rektyfikacja zdjęć to przetwarzanie zdjęć do postaci kartometrycznej i przedstawienie w układzie współrzędnych terenowych. Rezultat.
mysz drukarka Jednostka centralna monitor klawiatura.
PODSTAWY PRACY W PROGRAMIE AUTOCAD OPISYWANIE RYSUNKÓW: ‒style tekstu; ‒wprowadzanie tekstu tekst wielowierszowy tekst jednowierszowy ‒edycja tekstu. WYMIAROWANIE.
1.problem próbkowania (sampling problem) dobór charakterystycznych punktów powierzchni w celu uzyskania najlepszego efektu przy minimalizacji ilości danych.
Grafika wektorowa Konrad Janiszewski, kl. 2 . Co to jest? jeden z dwóch podstawowych rodzajów grafiki komputerowej, w której obraz opisany jest za pomocą.
Autor : Agnieszka Śliwińska. To przedmiot lub urządzenie, służące do przechowywania informacji.
Wiktoria Dobrowolska. Grafika komputerowa - dział informatyki zajmujący się wykorzystaniem komputerów do generowania obrazów oraz wizualizacją rzeczywistych.
Rafał Zakrzewski kl. II ASP
Zapis prezentacji:

Cyfrowe przetwarzanie obrazów. Część I - podstawy Praca zbiorowa pod kierunkiem dra inż. T. Popkowskiego

Narzędzie dla nauki i techniki Od początku nauki, wizualna obserwacja odgrywała główną rolę. Na początku jedyną metodą opisu wyników były opisy i szkice. Kolejnym krokiem było użycie fotografii. Dzięki zastosowaniu fotografii astronomowie mogli mierzyć pozycje i rozmiary gwiazd, kartografowie tworzyli mapy na podstawie zdjęć lotniczych itd. Przeglądanie niezliczonych zdjęć z komór z wodorem doprowadziło do odkrycia wielu podstawowych cząstek.

Liczenie i mierzenie Klasycznym zadaniem dla PO jest liczenie obiektów i pomiar ich rozmiarów. Głównym wyzwaniem w tym zadaniu jest znalezienie odpowiedniego ustawienia obrazowania i oświetlenia.

Obrazowanie telecentryczne Bąble na obrazie są obrazowane w technice telecentrycznej. W tej technice promienie są równoległe do osi optycznej, przez co rozmiar bąbli nie zależy od ich odległości. Próbkowana objętość dla analiz koncentracji jest określana poprzez stopień rozmycia bąbli.

Trudniejsze zadanie obrazowania Dużo trudniejszy jest pomiar kształtu bąbelków mydlanych, ponieważ są one przezroczyste i bąbelki z różnych warstw nakładają się na siebie. Dodatkowo kształty bąbelków różnią się między sobą, więc odpowiednie parametry do opisu kształtu muszą być odnalezione.

Pomiar rozmieszczenia Trzecim zastosowaniem jest pomiar rozmiaru i rozmieszczenia cząsteczek pigmentu, który jest bardzo ważny dla koloru i jakości farb. W tym przypadku pomiar rozmieszczenia jest zadaniem kontroli jakości. Obraz stworzony przy użyciu mikroskopu elektronowego pokazuje jakim wyzwaniem jest to zadanie PO. Cząsteczki mają tendencję do zbijania się w grupy. Stopniowo te grupy muszą być identyfikowane, i – jeśli to możliwe – oddzielane aby nie zakłócać szacowania rozmieszczenia.

Przestrzeń 3D W obrazach, trójwymiarowe sceny są rzutowane na dwuwymiarową płaszczyznę, więc informacja o głębi jest tracona. Ostatnimi czasy powstało wiele technik odzyskiwania informacji przestrzennych z obrazu, dlatego techniki PO są stosowane w obrazach wolumetrycznych i mapach głębokości.

Mikroskopia wspólnoogniskowa Aby umożliwić rekonstrukcję obiektu 3D, fotografie muszą być wykonane przy użyciu specjalnych technik. Jedną z nich jest mikroskopia wspólnoogniskowa. Polega ona na rzutowaniu pewnego wzoru na badany obiekt. Oddalanie przedmiotu powoduje że rzutowany wzór jest ostry na innych fragmentach obiektu, przez co możliwe jest znalezienie głębokości danego fragmentu.

Radar koherentności Inną metodą jest interferometria białego światła lub radar koherentności. Polega ona na zastosowaniu światła o małej długości koherentności i interferometru. Interferencja pojawia się tylko w miejscach o małej różnicy szerokości.

Tomografia Medycyna jest główną siłą napędową rozwoju technik trójwymiarowego PO wnętrza obiektów. Tomograf komputerowy umożliwia przeskanowanie obiektu przy pomocy promieniowania rentgenowskiego, głównie pokazując kości, rezonans magnetyczny natomiast pokazuje dobrze tkanki miękkie. Tomografia z użyciem emisji pozytronów pozwala odnaleźć nowotwory, gdyż podawany pacjentowi emiter pozytronów w nich się koncentruje.

Tomografia

Procesy dynamiczne Aby zanalizować procesy dynamiczne konieczna jest analiza sekwencji obrazów. Technik takich używa się np. w botanice do kontroli wzrostu roślin oraz czynników ten wzrost stymulujących.

Klasyfikacja Innym ważnym zadaniem jest klasyfikacja obiektów zaobserwowanych na obrazach. Klasycznym przykładem klasyfikacji jest OCR (rozpoznawanie tekstu). Innym rodzajem klasyfikacji może być rozpoznawanie różnych położeń obiektów. Klasyfikacja defektów jest innym ważnym zadaniem klasyfikacji, np. znajdowanie błędnie osadzonych elementów na płytkach drukowanych. Zastosowania klasyfikacji nie są ograniczone jedynie do zadań przemysłowych. Obrazy galaktyk z teleskopu Hubbla są poddawane klasyfikacji pod względem kształtu, koloru oraz są odróżniane od innych obiektów, np. gwiazd.

Hierarchia operacji w procesie rozpoznawania obrazu Przetwarzanie rozpoczyna się od pobrania obrazu, niekoniecznie przez system optyczny. Pobrany obraz jest następnie przetwarzany na format zrozumiały dla komputerów, proces ten nazywamy digitalizacją Następnym krokiem jest wstępna obróbka obrazu. Może ona w zależności od potrzeb polegać na poprawieniu jasności i kontrastu, transformacjach współrzędnych lub innych elementarnych działaniach na pixelach

Hierarchia operacji w procesie rozpoznawania obrazu Następnie przy pomocy technik takich jak uśrednianie, wykrywanie krawędzi, analiza prostych sąsiedztw czy kompleksowe techniki zwane obróbką obrazu jako tekstury wykonywane jest wyodrębnianie obiektów z obrazu. Tak wykryty obiekt musi być oddzielony od tła. To znaczy że regiony o stałych właściwościach i nieciągłości muszą zostać zidentyfikowane poprzez segmentację. Stopień trudności tego zadania zależy od tego, jak wyraźnie obiekt odróżnia się od tła. Czasem konieczne są bardzo wyrafinowane zabiegi oraz znajomość modeli opisujących poszukiwane obiekty.

Hierarchia operacji w procesie rozpoznawania obrazu Takie samo matematyczne podejście może być zastosowane do korekcji obrazu (wyostrzanie, odszumianie) jak również do rekonstrukcji obrazu ze źródła które nie daje go w sposób bezpośredni (tomografia)

Hierarchia operacji w procesie rozpoznawania obrazu Gdy już znamy geometryczny kształt obiektu, możemy użyć operatorów morfologicznych aby analizować i modyfikować kształt obiektów albo wyciągnąć dalsze informacje, takie jak np. średnia wartość koloru, obszar oraz inne parametry formy obiektu. Te parametry mogą zostać użyte do klasyfikacji obiektu.

Hierarchia operacji w procesie rozpoznawania obrazu W dużej mierze proces rozpoznawania obrazu jest bardziej złożony niż powyższy schemat. Często rozpoznawanie wykonywane jest iteracyjnie, dalsze etapy przekazują pewne dane etapowi wstępnej obróbki lub nawet pobierania obrazu, tak aby całe rozpoznawanie osiągnęło maksymalną skuteczność. Jeżeli zadanie rozpoznawania obrazu nie może być wykonane na zadanym obrazie, możemy chcieć zmienić oświetlenie, przybliżyć widok lub zmienić kąt widzenia. Takie podejście znane jest jako wizja aktywna. W inteligentnym systemie poznającym swoje otoczenie poprzez swoje zmysły możemy też mówić o cyklu akcja-percepcja.

Przetwarzanie obrazu i grafika komputerowa Podczas gdy przy generowaniu grafiki komputerowej znamy kształty i parametry wszystkich obiektów i chcemy uzyskać ich dwuwymiarowy obraz, to przy przetwarzaniu obrazu chcemy uzyskać rzecz dokładnie odwrotną. Dobra znajomość powstawania obrazów pozwoli nam na lepsze ich przetwarzanie.

Komponenty Systemu Przetwarzania Obrazu Typowy system składa się z czterech głównych elementów: System pobierania obrazu. W najprostszym wypadku jest to kamera CCD, skaner lub rejestrator wideo. Urządzenie znane jako frame grabber aby przetworzyć analogowy sygnał na postać cyfrową Komputer osobisty lub stacja robocza która dostarczy moc obliczeniową Odpowiednie oprogramowanie pozwalające na manipulacje i analizę obrazu.

Sensory CCD Kamieniem milowym w obrazowaniu było wynalezienie półprzewodnikowych macierzy fotodetektorów. Istnieje wiele rodzajów takich sensorów, najpopularniejszy z nich to CCD (charge coupled device). Sensor taki składa się z dużej liczby elementów czułych na światło. Elementy te w fazie akumulacji zbierają ładunki elektryczne wyłapując fotony. W ten sposób zakumulowany ładunek jest proporcjonalny do ilości światła jaka padła na dany sensor. W fazie odczytu te ładunki są zamieniane na napięcie elektryczne.

Sensory CMOS Od jakiegoś czasu na rynku dostępne są sensory CMOS. Chociaż nie dorównują one pod wieloma względami czujnikom CCD (szczególnie przy słabym oświetleniu) to mają też swoje zalety jak: mniejszy pobór prądu, szybszy dostęp do obszarów czujnika czy możliwość dodawania do układów (właściwie cała kamera może być zawarta w jednym chipie). Poza tym sensory CMOS są tańsze w produkcji.

Sensory półprzewodnikowe Ogólnie sensory półprzewodnikowe cechują się: Precyzyjną i stabilną geometrią co pozwala na dokładne pomiary odległości i rozmiaru. Małym rozmiarem i niewrażliwością na otoczenie Wysoką czułością. Dużą różnorodnością rozdzielczości i szybkości Obrazowaniem poza granicą światła widzialnego

Zastosowanie komputerów do szybkiego przetwarzania obrazów Ogromny postęp technologii komputerowej w przeciągu ostatnich 20 lat sprowadził temat przetwarzania obrazów na biurko każdego naukowca i inżyniera. Od 1978 do 2005 zegar procesorów zwiększył się z 4.7Mhz do 4.2Ghz. Szybkość operacji zmiennoprzecinkowych zwiększyła się o ponad 10000 razy. Pojemność dysków twardych zwiększyła się z początkowo z 5-10mb do 80-200GB, a 64-bitowa architektura nowych maszyn umożliwiła użycie pamięci RAM w wielkości ponad 4GB.

Wymagania 4 podstawowe rzeczy, których wymagano niegdyś od komputera: -wyświetlanie obrazów w wysokiej rozdzielczości -wystarczająco szybka przepustowość szyny pamięci -wystarczająco dużo miejsca na składowanie danych -odpowiednio duża mocy obliczeniowa stały się teraz realne. (2001)

Sztuka czy rzemiosło? Wcześniej przetwarzanie obrazów można było charakteryzować jako bardziej sztukę niż naukę, na szczęście wszystko gwałtownie się zmieniło. Nowe matematyczne metody jak i szybkie algorytmy sprawiły, iż wiele procesów technicznych związanych z przetwarzaniem obrazów znalazło zastosowanie, a koszty sprzętowe znacznie się obniżyły.

Przestrzenna reprezentacja obrazów cyfrowych: piksele i voxele Obrazy stanowią przestrzenne rozłożenie natężenia napromieniowania na płaszczyźnie. Irradiancję (natężenie napromieniowania) możemy opisać matematycznie funkcją: E(x1,x2)=E(x)

Komputerowa wizualizacja obrazu Komputery nie radzą sobie z ciągłymi obrazami, lecz tylko z szykiem (układem) cyfrowych liczb. Tym sposobem wymagane jest, aby reprezentacja obrazów była dwuwymiarowym układem punktów. Punkt na płaszczyźnie 2-D nazywamy pikselem lub pel'em, zaś punkt w przestrzeni 3-D voxelem. Pozycje pikseli w powszechnej notacji podawana jest jako matryca. Pierwszy indeks m oznacza pozycje wiersza, indeks n oznacza kolumnę.

Komputerowa wizualizacja obrazu

Komputerowa wizualizacja obrazu Każdy piksel reprezentuje nie tylko punkt w obrazie, ale raczej prostokątny region, elementarną komórkę siatki. Wartość związana z pikselem musi mówić nam o średniej irradiancji analogicznej komórki we właściwy sposób.

Komputerowa wizualizacja obrazu Z ilu pikseli powinien składać się obraz? Nie ma na to generalnej odpowiedzi. Z wizualnych obserwacji obrazów cyfrowych, rozmiar pikseli powinien być mniejszy, niż rozdzielczość systemowa z minimalnego dystansu od obserwatora. Dla przykładu rozmiar piksela powinien być mniejszy niż najmniejszy z obiektów, których chcemy studiować.

Komputerowa wizualizacja obrazu Siatka prostokątna jest najprostszą geometryczną formą dla przedstawienia obrazu cyfrowego. Możliwe jest zastosowanie innych geometrycznych rozmieszczeń. Ich klasyfikacja w 2-D jest dużo prostsza niż w 3-D, gdyż tutaj możemy użyć tylko regularnych wielokątów, czyli mamy tylko 3 możliwości: trójkąty kwadraty i sześciokąty.

Komputerowa wizualizacja obrazu

Komputerowa wizualizacja obrazu W trój wymiarze piksele przeobrażają się w elementy przestrzenne zwane voxelami (od volume element). W prostokątnej siatce każdy voxel reprezentuje średnią skale szarości prostopadłościanu. Pozycja voxela podawana jest przez 3 indeksy. Pierwszy k oznacza głębokość, m wiersz i n kolumnę. Siatka Kartezjańska jest najbardziej ogólnym rozwiązaniem dla danych cyfrowych dopóki jest to tylko geometria, która w łatwy sposób może być rozszerzona w dowolnym wymiarze.

Relacje sąsiadów Są dwa możliwe sposoby, aby zdefiniować sąsiedztwo pikseli. Możemy nazwać piksele sąsiednimi, jeżeli mają wspólną krawędź lub wspólny wierzchołek. Piksel ma więc albo 4 albo 8 sąsiadów. Oba typy sąsiedztwa są potrzebne do właściwej definicji obiektu jako połączonego regionu. Obiekt lub region możemy nazwać połączonym, jeżeli potrafimy dotrzeć do każdego piksela w regionie idąc z jednego sąsiadującego piksela do następnego.

Relacje sąsiadów

Relacje sąsiadów W 3-D relacje sąsiadów są bardziej skomplikowane rozróżniamy tutaj voxele połączone całą powierzchnią boku, krawędziami oraz wierzchołkami. Takie rozwiązanie daje nam rezultat, iż każdy voxel może mieć 6, 18 lub 26 sąsiadów.

Relacje sąsiadów

Kwantyzacja Mierzona irradiancja płaszczyzny obrazu musi być odwzorowana jako ograniczona wartość Q dyskretnej skali szarości, aby mogła być użyta przez komputer. Proces ten nazywa się kwantyzacją. Wartość potrzebnego poziomu kwantyzacji może być dyskutowana ze względu na dwa kryteria.

Kwantyzacja Po pierwsze skoki skali szarości nie powinny być przez nas zauważane, dopóki nie widzimy pojedynczego piksela obrazu. Stąd na wydrukowanym obrazie stopień kwantyzacji może być odpowiedni zaś już na monitorze obiekty będą trudne do rozpoznania.

Kwantyzacja Po drugie stopień kwantyzacji zależy od użycia obrazu. Np.: w przypadku spektroskopii czy zastosowaniach medycznych wystarczą dwa poziomy kwantyzacji (binary image).

Określenie jasności obrazu Wydaje się że naturalnym sposobem, aby określić jasność obrazu są liczby dodatnie (Np w 8-bitowej reprezentacji od 0 do 255). Powoduje to problemy, gdyż odjęcie dwóch obrazów od siebie może dać nam ujemną wielkość. Ujemna wielkość skali szarości nie może być wyświetlona, przechodzi ona zaś w wielką dodatnia. Np. wartość -1 daje w wyniku 255, gdyż -1 modulo 256 = 255. Odpowiednio więc musimy mieć różne wersje algorytmu dla wartości dodatnich, ujemnych oraz mieszanych przypadków. Np. q'=(q-128) mod 256 0<=q<256 q=(q'+128) mod 256 -128<=q'<128

Sposób percepcji przez człowieka System wizualizacji człowieka pokazuje bardziej logarytmiczną niż liniową odpowiedź. To znaczy, że postrzegamy jasność bardzo relatywnie. W szerokim zakresie luminacji możemy zauważyć relatywną różnice na poziomie 2%. Komputer rozróżnia jedynie 256 typów skali szarości, co sprawia, że obraz cyfrowy ma znacznie mniejszą dynamikę. To jest powód, dlaczego jakość obrazów cyfrowych, a w szczególności scen bardzo jaskrawych i kontrastowych, wydaje nam się dużo gorsza w porównaniu z rzeczywistością.

Sposób percepcji przez człowieka Jest jedno rozwiązanie dla kopiowania z dużą dynamiką w scenach używane w kamerach, które generalnie konwertuje irradiancję E nie liniowo, lecz ekspotencjalnie do skali szarości g. g=E^γ Eksponenta γ nazywana jest wartością gamma. Standardowo ma wartość 0.4. Z tą konwersją logarytmiczna charakterystyka systemu wizualizacyjnego człowieka może być przybliżona. Zakres kontrastu znacznie się poprawia i obraz może być wykorzystany w większości aplikacji w zależności od parametru γ.

Transformata Fouriera Transformata Fouriera przenosi obraz z dziedziny czasu do dziedziny częstotliwości. Intuicyjną definicję częstotliwości obrazu oprzeć można na kontrastach zawartych w rozpatrywanym obrazie. Wysoki kontrast to wysoka częstotliwość, niski kontrast to niska częstotliwość. Krawędzie zawartych w obrazie powierzchni o jednolitej barwie, znajdujących się na tle o barwie różnej od barwy tych powierzchni to oczywiście obszary o wysokiej częstotliwości. Można zatem wyobrazić sobie, że usunięcie składowych z obrazu określających właśnie obszary o wysokiej częstotliwości pozwoli na rozmycie, „uciąglenie” obrazu.

Jednowymiarowa transformata Fouriera (1-D FT,1-D DFT) Definicja(1-D FT): Niech funkcja f(x) będzie całkowalną funkcją kwadratową, wtedy jej transformata Fouriera F(u) dana jest wzorem:

Odwrotna transformata Fouriera przekształca F(u) w f(x):

Definicja(1-D DFT) Dyskretna transformacja Fouriera przekształca ciąg N liczb (funkcja f(x)) wg wzoru: u= 0, 1, ..., N-1

Z odwrotnej dyskretnej transformaty Fouriera otrzymujemy ciąg pierwotny analogicznie jak w przypadku transformaty ciągłej.

Wielowymiarowa transformata Fouriera Definicja (M-D FT - ciągła): Niech funkcja g(x) będzie całkowalną funkcją kwadratową, wtedy jej transformata dana jest wzorem: gdzie D – wymiar transformacji

Transformatę odwrotną otrzymujemy podobnie jak we wszystkich dotychczasowych przypadkach.

DFT - DFT przekształca macierz liczb zespolonych o wymiarach M x N w inną macierz liczb zespolonych o wymiarach M x N: lub: u = 0, 1, ..., M-1 v = 0, 1, ..., N-1 gdzie f(x,y) – element obrazu o współrzędnych (x,y), F(u,v) – transformata Fouriera tego punktu, M, N – wymiary obrazu.

Transformatę odwrotną (2-D DFT) otrzymujemy ze wzorów: lub: x = 0, 1, ..., M-1 y = 0, 1, ..., N-1

Własności Okresowość: każdą funkcję można podzielić na część parzystą i nieparzystą, a transformata Fouriera jest liczbą zespoloną, gdzie część rzeczywista jest funkcją parzystą (charakter cosinusoidalny), a część urojona jest funkcją nieparzystą (charakter sinusoidalny).

Symetrie Cztery najważniejsze symetrie dla transformaty Fouriera to: parzysta g(-x) = g(x), nieparzysta g(-x) = -g(x), hermitowska g(-x) = g*(x), antyhermitowska g(-x) = -g*(x), Gdzie symbol * oznacza sprzężenie.

Rozdzielność Jądro transformacji Fouriera jest rozdzielne, zatem transformacja rozdzielnych funkcji jest także rozdzielna.

Podobieństwo Jeśli zmienimy skalę czasu w funkcjach pierwotnych, to odpowiednio zmienią się ich transformaty:

Przesunięcie Przesunięcie sygnału w dziedzinie czasu o x0 powoduje pomnożenie transformaty tego sygnału wg wzoru: Przesunięcie transformaty sygnału o k0 powoduje pomnożenie sygnału wg wzoru:

Splot W dziedzinie czasu: Transformata Fouriera splotu dwóch sygnałów jest iloczynem transformat obu tych sygnałów: g(x) * h(x) G(u)H(u) W dziedzinie częstotliwości: Transformatą iloczynu dwóch sygnałów jest splot ich transformat: g(x)h(x) G(u) * H(u)

Faza i amplituda Patrząc na obraz po transformacji Fouriera obserwujemy go jakby z innego punktu widzenia. Każdy punkt w dziedzinie częstotliwości zawiera dwie informacje: amplitudę i fazę. Faza zawiera niezbędną informację o strukturze obrazu, zaś amplituda mówi jaka struktura okresowa zawarta jest w obrazie, ale nie mówi gdzie dokładnie.

Unitarne dyskretne transformaty

Właściwości ogólne Twierdzenie o unitarnej transformacie Niech V będzie skończenie wymiarowym iloczynem skalarnym wektora przestrzeni. Niech U będzie liniową transformacją na nią samą. Wtedy spełnione są odpowiednio: 1.U jest unitarne 2.U zachowuje iloczyn skalarny <g|h>=<Ug|Uh>, g,h єV 3.Odwrotność U, czyli U-1 jest sprzężone U:UUT=I 4.Wiersz wektorów (i kolumna wektorów) z U tworzy ortonormalną bazę wektora przestrzeni V.

Dyskretna transformata Fouriera, DFT DFT jest operacją liniową. Jeśli g jest wektorem próbek, wektor składowych fourierowskich G otrzymujemy jako G = Wg, gdzie elementy unitarnej macierzy W dane są przez: Wydaje się, że koszt numeryczny obliczania DFT wynosi O(N2), czyli tyle, ile wynosi koszt mnożenia wektora przez macierz. Jednak dzięki symetriom macierzy W, koszt ten można znacznie zredukować.

Uwaga terminologiczna: macierz Vandermonde’a Macierz realizująca DFT jest szczególnym przypadkiem macierzy Vandermonde’a: gdzie W przypadku DFT,

Algorytm Fast Fourier Transform, FFT Przykład: N = 8 Macierz a) Widać regularności, ale jest tutaj trudno zobaczyć symetrie

Permutujemy kolumny, jednocześnie permutując wektor danych — to nie zmienia wyniku. Macierz b) Dzięki zmianie kolejności możemy już coś zauważyć!

Poprzednie równanie macierzowe możemy przepisać w postaci (zapis blokowy): Macierz c)

…gdzie oznaczyliśmy

A zatem Macierz d) Fragmenty oznaczone kolorami obliczamy tylko raz. Mnożenie przez wykonujemy w czasie liniowym. Zmniejszyliśmy czas obliczeń o połowę. Ω(4)

(analogicznie dla [g1, g3, g5, g7]T ) Rzecz w tym, iż podlega analogicznej faktoryzacji, przy jednoczesnej dalszej permutacji wektora wejściowego: V(4) (analogicznie dla [g1, g3, g5, g7]T )

W ten sposób Macierz e) Dwuwymiarowe wektory oznaczone kolorami oblicza się tylko raz. W ten sposób złożoność obliczeniową zredukowaliśmy już czterokrotnie.

Ostatnia zagadka: W porównaniu z wyjściowym równaniem – mac. a), w równaniu – mac. e) dokonaliśmy permutacji Wektor wejściowy (“wektor próbek”) uporządkowany jest w odwrotnej kolejności bitowej (bit reversal order) indeksów. [g0, g1, g2, g3,g4, g5, g6, g7]T=>[ g0, g4, g2, g6 g1, g5, g3, g7]T

Jaki jest koszt numeryczny tego algorytmu? Ten algorytm bardzo łatwo uogólnia się na dowolne Widać też, że znacznie redukujemy konieczność obliczania złożonych wyrażeń typu sin ,cos konieczność wywoływania funkcji bibliotecznych sin(·), cos(·) została w ogóle wyeliminowana. Na każdym etapie faktoryzacji wystarczy raz wyliczyć odpowiedni pierwiastek z i, na co są gotowe wzory, potem zaś wyliczać tylko kolejne potęgi. Jaki jest koszt numeryczny tego algorytmu? N = 2s, s є N

Koszt numeryczny algorytmu FFT wynosi O(N log2N) Każda faktoryzacja zmniejsza ilość operacji o połowę. Faktoryzacji można zrobić tyle, ile razy można podzielić macierz “na ćwiartki”. Koszt numeryczny algorytmu FFT wynosi O(N log2N) Na przykład dla N = 65536 = 216 zastosowanie algorytmu FFT zmniejsza złożoność obliczeniową w stosunku do liczenia “z definicji” ponad cztery tysiące razy.

Uwagi • Zupełnie podobny algorytm można skonstruować dla i ogólnie, dla , gdzie q jest liczbą pierwszą. Koszt obliczeniowy wynosi wówczas • Dobre biblioteki “szybko” obsługują także gdzie są niskimi liczbami pierwszymi. • Jeżeli analizujemy ciąg uzyskany z symulacji, to w zasadzie kontrolujemy jego długość i koniecznie należy zadbać o to, aby była ona potęgą niskiej liczby pierwszej, ewentualnie iloczynem jak najmniejszej ilości czynników typu Jeżeli mamy ciąg “doświadczalny”, dla zapewnienia odpowiedniej szybkości obliczeń należy go albo obciąć, albo uzupełnić zerami do najbliższej “specjalnej” długości. N = 3s, N = 5s N = qs O(N logq N). N = q1s1, q2s2… qmsm q1, q2… qm qisj

Inne uwagi: • DFT traktuje ciąg próbek jak ciąg zmiennych zespolonych. Jeśli liczymy transformatę sygnału rzeczywistego, można go przekształcić za sygnał “zespolony” o długości dwa razy mniejszej. Po dokonaniu transformacji, odwikłujemy transformatę korzystając z własności symetrii transformaty Fouriera: Jeżeli Daje to istotne przyspieszenie obliczeń. • Podobnie można jednocześnie liczyć transformaty dwu sygnałów rzeczywistych - bardzo przydatne przy liczeniu splotu dwu takich sygnałów. • Istnieja także “szybkie” algorytmy rozkładające sygnał wejściowy w bazie samych kosinusów (szybka transformata kosinusowa) lub samych sinusów (szybka transformata sinusowa). Transformat tych można z sensem używać jeśli sygnały wejściowe mają odpowiednie symetrie. Szybkiej dwuwymiarowej transformacji kosinusowej używa się w standardzie JPEG. g є RN, G*(f) = G(−f).

Dyskretna transformata kosinusowa Także skrótowo nazywana DCT, transformata jest blisko spokrewniona z szybką transformatą Fouriera. Ma to znaczenie w kodowaniu sygnałów i obrazów, np. w szeroko używanym standardzie kompresji JPEG. Jedno-wymiarowa transformata jest zdefiniowana jak gdzie s jest tablicą z N oryginalnych wartości, t jest tablicą z N przekształconych wartości, i współczynnik c jest podany jako dla

Dyskretna transformata kosinusowa w dwóch wymiarach, dla macierzy kwadratowej może być zapisana jako W analogicznym zapisie N, s, t, i c(i,j) dane jako c (0,j) = 1/N, c (i,0) = 1/N i c (i,j) = 2/N dla obydwu i oraz j ≠ 0. DCT ma odwrotność, zdefiniowaną jako dla przypadku jednowymiarowej transformaty, i dla przypadku dwuwymiarowego.

Transformata Hartley’a Hartley transform HT(ang.) jest dużo bardziej eleganckim rozwiązaniem niż transformaty sinusowa i kosinusowa dla przekształceń, które unikają liczb zespolonych. DFT transformuje sekwencję rzeczywistych liczb z dziedziny czasu do sekwencji liczb zespolonych w dziedzinie częstotliwości, jednak połowa tych liczb jest redundantna (informacja jest powtarzana). Zwielokrotnienie danych zespolonych w komputerze – DFT nie jest wydajne! Transformata Hartleya wydaje się być algorytmem, który usuwa redundantność transformaty Fouriera poprzez relację:

Nie ma żadnej utraty informacji ponieważ możemy zawsze powrócić do Transformaty Fouriera poprzez relację: Ponieważ reprezentacja w dziedzinie częstotliwości jest rzeczywista, to HT wymaga mniej mnożeń i wydaje się być bardziej efektywna.

Znaczenie szybkich algorytmów Byłoby niemożliwe wyliczenie dyskretnej transformaty Fouriera bez efektywnego algorytmu. Każdy punkt w przekształconym obrazie wymaga zespolonych mnożeń i zespolonych dodawań (nie wliczając w to funkcji sinusowych i kosinusowych w jądrze). Reasumując potrzeba zespolonych mnożeń i zespolonych dodawań. To daje około floating point operations - instrukcji zmiennopozycyjnych. Dla obrazka o wym. 512x512 to rezultat operacji. Procesor pentium IV 2-GHz w komputerze klasy PC osiąga około 500 MFLOPsów (milion Floating Point Instruction Per Second - milion instrukcji zmiennopozycyjnych na sekundę - jednostka miary wydajności obliczeniowej procesora) jeżeli używany jest język wysokiego poziomu ze zoptymalizowanym kompilatorem. N2 N2 - 1 N4 (N2 – 1)N2 8N2 5x1011

Prosta DFT na obrazku 512x512 z Prosta DFT na obrazku 512x512 z operacji mogłaby wymagać około 1000 sek. o wiele za wolno aby była dobrą dla praktycznych aplikacji. Weźmy przykład: Kolega mieszka w wysoko piętrowym budynku z N piętrami. Chcemy się dowiedzieć, na którym piętrze znajduję się jego apartament. Na pytanie będziemy odpowiadać tak albo nie. Najprościej jest zapytać: „czy mieszkasz na N – piętrze?”. W najlepszym przypadku nasze początkowe przypuszczenie będzie prawdą, ale jest bardziej prawdopodobne, że to samo pytanie będziemy musieli zadawać znowu i tak na każdym piętrze. W najgorszym przypadku będziemy musieli zadać N – 1 pytań, średnio N/2 pytań. Z każdym pytaniem możemy wykluczyć jedną z N możliwości. 5x1011

Ale wykorzystując pytanie: „Czy mieszkasz w górnej czy dolnej części budynku?”, możemy wykluczyć połowę z możliwości tylko jednym zapytaniem. Po pierwszej odpowiedzi wiemy czy osoba mieszka w dolnej czy górnej części, możemy kontynuować postępując dalej w ten sam sposób dzieląc dane połówki na mniejsze aż odnajdziemy dane piętro. W tej strategii potrzebujemy o wiele mniej pytań. Jeżeli liczba pięter jest potęgą liczy 2 tzn. wtedy potrzebujemy dokładnie l pytań. Więc dla N pięter potrzebne jest zapytań. Stosowana tutaj metoda nazywana jest „ dziel i rządź”. 2l log2N