Transformata Hough’a. Metoda poszukiwania prostych w obrazie poprzez stopniowe kumulowanie wiarygodności. Dane wejściowe: dany jest obraz ze wstępnie wykrytymi punktami konturów (np. przetworzony przez filtr gradientowy). Idea: równanie prostej y=ax+b, proste przechodzące przez punkt (x, y) muszą spełniać równanie b=y-ax. Czyli: obecność w obrazie zapalonego punktu o współrzędnych (x,y) zwiększa prawdopodobieństwo występowania w nim prostych o parametrach (a,b) spełniających równanie y=ax+b.
Punktowi w przestrzeni obrazu odpowiada prosta w przestrzeni parametrów. Punktowi w przestrzeni parametrów odpowiada prosta w przestrzeni obrazu. Transformata Hough’a może zostać odniesiona do jakiejś parametrycznej krzywej a jej kształt może być opisany ustaloną liczbą parametrów: f(α1,α2,...,αn,x,y)=0. Liczba parametrów wiąże się z wymiarami macierzy akumulatorów. Punkt obrazu (x,y) definiuje hiperpowierzchnię w n-wymiarowej przestrzeni parametrycznej (α1,...,αn). Przecięcia tych hiperpowierzchni wskazują parametry, które charakteryzują przykłady szukanych krzywych w przestrzeni obrazowania.
Algorytm DDA bardzo prosta budowa. Jego wadą jest stosowanie arytmetyki na liczbach zmiennoprzecinkowych. Idea algorytmu DDA opiera się na wykorzystaniu współczynnika kierunkowego prostej, znanego z kierunkowej postaci równania prostej y = mx + b prostych przekształceniach algebraicznych otrzymujemy wzory na położenie poszczególnych pikseli odcinka yi+1 = yi + 1 xi+1 = xi +1 / m. Zaczynając od punktu P(x0, y0) stawiamy kolejne punkty aż do osiągnięcia punktu końcowego P(xk, yk).
Kodowanie Huffmana (kompresji bezstratnej). Algorytm Huffmana nie należy do najefektywniejszych systemów bezstratnej kompresji danych, dlatego też praktycznie nie używa się go samodzielnie. Kodowanie Huffman Dany jest alfabet źródłowy (zbiór symboli)S={} oraz zbiór stowarzyszonych z nim prawdopodobieństw P={}. Symbolami są najczęściej bajty. Prawdopodobieństwa mogą zostać z góry określone dla danego zestawu danych. Częściej jednak wyznacza się je indywidualnie dla każdego zestawu danych.Kodowanie Huffmana polega na utworzeniu słów kodowych (ciągów bitowych), których długość jest odwrotnie proporcjonalna do prawdopodobieństwa pi. Kod Huffmana jest kodem prefiksowym. Jeśli prawdopodobieństwa są różne, tzn. pj > pi, to długość kodu dla symbolu xj jest niewiększa od kodu dla symbolu xi. Słowa kodu dwóch najmniej prawdopodobnych symboli mają równą długość. Dwa najdłuższe symbole różnią się tylko jednym, ostatnim bitem. Kompresja polega na zastąpieniu symboli otrzymanymi kodami.
Algorytm statycznego kodowania Huffman 1.Określ prawdopodobieństwo dla każdego symbolu ze zbioru S. Utwórz listę drzew binarnych, które w węzłach przechowują pary: symbol, prawdopodobieństwo. 2.Na początku drzewa składają się wyłącznie z korzenia. 3.Dopóki na liście jest więcej niż jedno drzewo powtarzaj: a)Usuń z listy dwa drzewa o najmniejszym prawdopodobieństwie zapisanym w korzeniu. b)Wstaw nowe drzewo, w którego korzeniu jest suma prawdopodobieństw usuniętych drzew, natomiast one same stają się jego lewym i prawym poddrzewem. Korzeń drzewa nie przechowuje symbolu. C)Drzewo, które pozostanie na liście, jest nazywane drzewem Huffmana – prawdopodobieństwo zapisane w korzeniu jest równe 1, natomiast w liściach drzewa zapisane są symbole. Na podstawie drzewa Huffmana tworzone są słowa kodowe; algorytm jest następujący:1.Każdej lewej krawędzi drzewa przypisz 0, prawej 1 (można oczywiście odwrotnie). 2.Przechodź w głąb drzewa od korzenia do każdego liścia (symbolu): A)Jeśli skręcasz w prawo dopisz do kodu bit o wartości 1. B)Jeśli skręcasz w lewo dopisz do kodu wartości 0. Długość słowa kodowego jest równa głębokości symbolu w drzewie, wartość binarna zależy od jego położenia w drzewie.
Histogram to jeden z graficznych sposobów przedstawiania rozkładu cechy. Składa się z szeregu prostokątów umieszczonych na osi współrzędnych. Prostokąty te są z jednej strony wyznaczone przez przedziały klasowe (patrz: Szereg rozdzielczy) wartości cechy, natomiast ich wysokość jest określona przez liczebności (lub częstości) elementów wpadających do określonego przedziału klasowego.Histogram pokazuje ile i jakie wartosci składowych pikseli wystepuja w obrazie oraz wskazuje ilosc barw uzytych w obrazie. Histogram informuje także o kontrascie obrazu. Dane zawarte w histogramie umozliwiaja polepszenie jakosci obrazu.
Wyrównywanie histogramu – przekształcenia jasności punktów obrazu tak aby ilość punktów o jasności leżącej w każdym z równych przedziałów histogramu była (w przybliżeniu) taka sama. Intuicyjnie mówiąc równoważenie histogramu polega na zwiększaniu różnic jasności pomiędzy tymi pikselami w obrazie, które mają jasności często występujące. W praktyce wyrównywanie histogramu sprowadza się do wykonania przeksztalcenia obrazu przy pomocy odpowiednio przygotowanej tablicy LUT. Na podstawie dystrybuanty otrzymujemy tablice LUT, która wyraza się wzorem: LUT(i) = ((D(i) - D0) / (1 - D0)) * (k - 1) , gdzie: i - wartosc składowej obrazu oryginalnego, D0 - pierwsza niezerowa wartosc dystrybuanty obrazu oryginalnego, k - liczba mozliwych wartosci składowych obrazu.
Tablica LUT wszystkie zmiany histogramu sprowadzaja sie do utworzenia dyskretnej funkcji konwersji oryginalnych wartosci składowych obrazu na nowe wartosci składowych. Poniewaz funkcja jest dyskretna, to najłatwiejszym sposobem jej opisania jest wykorzystanie tablica nazywanej tablica LUT (LookUp Table).
Przykładowe zastosowanie tablicy LUT
- A)uniwersalny operator jednopunktowy (identyczności, odwrotności, progowania, rozciągania itd.). Indeksy tablicy: wartości kolejnych poziomów jasności obrazu pierwotnego. Elementy tablicy: odpowiednie poziomy janości pikseli obrazu wynikowego. – B)histogram;indeksy tablicy: wartości kolejnych poziomów jasności obrazu pierwotnego,elementy tablicy: liczby pikseli (lub względna zawartość pikseli) o zadanym poziomie jasności.
Tablice LUT charakteryzują się kilku ciekawymi cechami: modyfikują rozkład stopni szarości bez jakiegokolwiek wpływu o charakterze geometrycznym; celem operacji jest lepsze uwidocznienie interesujących nas szczegółów bez wprowadzania do obrazu dodatkowych informacji; funkcja przekształcająca obraz powinna być ściśle rosnąca lub malejąca, Przykładem stosowania tablicy LUT jest gamma modulacja, którą stosujemy, gdy z powodu nadmiernego kontrastu trudno jest na zdjęciu rozróżnić szczegóły
Filtracja obrazów jest operacją matematyczną na pikselach obrazu źródłowego w wyniku której uzyskiwany jest nowy, przekształcony obraz. Filtrację określa się jako przekształcenie kontekstowe, gdyż dla wyznaczenia nowej wartości piksela obrazu docelowego potrzebna jest informacja z wielu pikseli obrazu źródłowego.
Filtracja stosowana jest jako metoda wydobycia z oryginalnego obrazu szeregu informacji. Innym zastosowaniem filtracji jest usuwanie szumów lub rozmycie obrazu. Filtrację można przeprowadzać zarówno w dziedzinie przestrzennej jak i częstotliwościowej. Filtracje w dziedzinie przestrzennej uzyskuje się wykorzystując operacje splotu. W dziedzinie częstotliwości odpowiednikiem splotu jest operacja mnożenia transformat obrazu i filtru. Praktyczne zastosowanie Filtry wykorzystywane są zazwyczaj do: Stłumienie w obrazie niepożądanego szumu. Wzmocnienie w obrazie pewnych elementów zgodnych z posiadanym wzorcem. Usunięcie określonych wad z obrazu. Poprawa obrazu o złej jakości technicznej. Rekonstrukcja obrazu
Operacja splotu oblicza nową wartość piksela obrazu na podstawie wartości pikseli sąsiadujących. Każda wartość piksela sąsiadującego jest odpowiednio wagowana(zgodnie z wartością w masce filtru) i wpływa na końcową wartość piksela obrazu po filtracji zgodnie ze wzorem:
Filtry dolnoprzepustowe Działanie tego typu filtrów opiera się na odcinaniu elementów obrazu o wysokiej częstotliwości(szczegółów) i przepuszczaniu elementów o niskiej częstotliwości(ogólnych kształtów, bez szczegółów). Ponieważ większość szumów występujących w obrazach zawiera się w wysokich częstotliwościach, filtry te przeważnie wykorzystuje się właśnie do eliminacji zakłóceń.
Filtry górnoprzepustowe tłumią one niskoczęstotliwościowe elementy obrazu, wzmacniają natomiast elementy o wysokich częstotliwościach (szczegóły). Wynikiem działania tego typu filtrów jest podkreślenie, uwypuklenie elementów obrazu o dużej częstotliwości
Filtry statystyczne Wyróżnia je fakt, iż nie posiadają stałej maski jak w przypadku innych filtrów. Nowe wartości pikseli są wyliczane na drodze sortowania pikseli obrazu źródłowego w obrębie maski. Po sortowaniu, w zależności od rodzaju filtru, wybierana jest wartość środkowa, maksymalna, bądź minimalna.
Filtr medianowy jest przykładem filtru nieliniowego. Stosuje się go przede wszystkim do usuwania zakłóceń punktowych typu pieprz i sól, potrafi on wtedy usunąć szum przy minimalnej utracie jakości obrazu lub całkowicie bez strat.
Binaryzacja polega na zamianie obrazów wieloodcieniowych na obrazy binarne. Przekształcenie to jest prawie zawsze wykorzystywane w analizie obrazów, gdyż wiele operacji może być przeprowadzonych wyłącznie na obiektach binarnych. Typy binaryzacji -Binaryzacja z dolnym progiem -Binaryzacja z górnym progiem -Binaryzacja z podwójnym ograniczeniem. -Binaryzacja warunkowa. -wielokryterialna
Kontrast definiowany jest poprzez maksymalne i minimalne wartość intensywności w obrazie: Kontrast przyjmuje wartości pomiędzy 0 a 1. Jest on najwyższy dla obrazu, którego intensywności sąrozłożone w pełnym przedziale intensywności obrazu.
JPEG (wym. dżej-peg lub jot-peg) – standard kompresji statycznych obrazów rastrowych, charakteryzujących się płynnymi przejściami barw oraz brakiem lub małą ilością ostrych krawędzi i drobnych detali.
Algorytm stratny JPEG jest algorytmem stratnym, tzn. w czasie jego wykonywania tracona jest bezpowrotnie część pierwotnej informacji.Algorytm przebiega następująco: 1.obraz jest konwertowany z kanałów czerwony-zielony-niebieski (RGB) na jasność (luminancję) i 2 kanały barwy (chrominancje). 2.wstępnie odrzucana jest część pikseli kanałów barwy, 3.kanały są dzielone na bloki 8x8. 4.na blokach wykonywana jest dyskretna transformata kosinusowa (DCT). Zamiast wartości pikseli mamy teraz średnią wartość wewnątrz bloku oraz częstotliwości zmian wewnątrz bloku, obie wyrażone przez liczby zmiennoprzecinkowe. 5.Zastąpienie średnich wartości bloków przez różnice wobec wartości poprzedniej. 6.Kwantyzacja, czyli zastąpienie danych zmiennoprzecinkowych przez liczby całkowite 7.współczynniki DCT są uporządkowywane zygzakowato, aby zera leżały obok siebie 8.współczynniki niezerowe są kompresowane algorytmem Huffmana. Użyta transformata powoduje efekty blokowe w przypadku mocno skompresowanych obrazków.
Przekształcenia geometryczne mogą być wykorzystywane do korekcji błędów optyki (likwidacja beczkowatości lub poduszkowatości obrazu) lub jako operacje pomocnicze (np. pomiary średnicy pod różnymi kątami).
Przekształcenia punktowe mogą być wykorzystane np. do tworzenia negatywu. Wśród przekształceń punktowych wyróżniamy trzy podgrupy: operacje logiczne operacje arytmetyczne tablice korekcji (LUT - Look Up Tables) nazywane też operacjami anamorficznymi. Operacje logiczne najczęściej wykonujemy na obrazach binarnych. Operacje te możemy rozszerzyc na obrazy o wielu stopniach szrości, jeżeli będziemy je prowadzić dla każdego bitu oddzielnie. Operacje arytmetyczne możemy przeprowadzać na dwóch całych obrazach (np. odejmować je od siebie), jak i wykonywać je na pojedynczym obrazie obrazie
Przekształcenia morfologiczne polegają na przeglądaniu całego obrazu punkt po punkcie i sprawdzaniu dla każdego piksela, czy konfiguracja punktów sąsiadujących spełnia określony warunek. Na tej podstawie podejmowana jest decyzja o wartości badanego piksela w obrazie wynikowym. Dzięki lokalnemu działaniu algorytmów, operacje te pozwalają na przekształcanie poszczególnych obiektów znajdujących się na obrazie, w celu wydobycia jedynie istotnych cech.
Dziura – spójna składowa dopełnienia obszaru otoczona przez ten obszar.
Obszar – spójny podzbiór obrazu. Przekrój – przecięcie linią prostą obszaru lub obrazu.
Obszar spójny – dotyczący podzbioru obrazu, którego dwa dowolne punkty można połączyć łukiem całkowicie zwartym w tym podzbiorze.
Średnica podzbioru – maksymalna odległość międz dwoma dowolnymi pikselami w podzbiorze obrazu.
Tło – spójne składowe obrazu, które leżą wewnątrz dopełnienia obszaru i je otaczają(zawierają).
Obszar wklęsły – co najmniej jeden odcinek prostej między dwoma punktami obszaru nie leży całkowicie w tym obszarze.
Obszar wypukły – odcinek prostej między każdymi dwoma dowolnymi punktami obszaru jest całkowicie zawarty w tym obszarze.
Segmentacja obrazu(etykietowanie) – jest yo rozbicie obrazu(uprzednio przefiltrowanego i zbinaryzowanego) na fragmenty odpowiadające poszczególnym, widocznym na obrazie obiektom; Wydzielenie obszarów obrazu spełniających pewne kryteria jednorodności, np. kolor obszaru, poziom jasności, faktura. Indeksacja wydzielonych obiektów obrazu, tzn wypełnianie wydzielonych obszarów odpowiadających obiektom sztucznie wprowadzonymi poziomami szarości. Cel segmentacji – przygotowanie obrazu do etapu właściwego rozpoznawania obiektów, określenia relacji przestrzennych pomiędzy nimi
Analiza obrazu – wyznaczenie cech obiektów(wyodrębnionych uprzednio w procesie segmentacji) przydatnych w procesie właściwego rozpoznawania; cechy charakteryzujące kształty; współczynniki niezmiennicze względem typowych przekształceń obrazów(obroty, przesunięcia, zmiany skali) współczynniki kształtu, momenty geometryczne.
Rozpoznanie obrazu – automatyczna identyfikacja klasy, do której można zaliczyć nieznany obiekt(np. obraz).
Akwizycja i przetwarzanie wstępne. Elementy procesu akwizycji: - oświetlenie obrazu; - formowanie obrazu(optyczne); - detekcja obrazu; - formowanie wyjściowego sygnału z urządzenia(kamera, skaner).
Detekcja krawędzi/LaplasjanDetekcja krawędzi przy pomocy Laplasjanabazuje na procesie binaryzacji obrazu poddanego temu przekształceniu. Rozwiązanie to nie jest korzystne, gdyżLaplasjan będący operatorem drugiej pochodnej jest szczególnie czuły na szumy. Ograniczenie wpływu szumu można uzyskaćprzez zwiększenie rozmiaru stosowanej macierzy. Równieżw procesie lokalizacji krawędzi wykorzystuje siędetekcjępunktów, w których Laplasjan zmienia znak. Sposób postępowania w tym przypadku jest następujący:♦wykonujemy Laplasjan ♦przeprowadzamy binaryzacjęz progiem dolnym o wartości 0. W ten sposób wykryjemy wszystkie punkty w wartościach większych lub równych 0, ♦przeprowadzamy detekcjębrzegu obrazu binarnego. Wychwytujemy wszystkie punkty, których wartośćjest równa bądźteżbliska 0.
Filtracja sól i pieprzGdy w jednym z pikseli jest wartośćX to ten punkt może miećdowolnąwartość"0" lub "1". Jest to równoważne z zastosowaniem dwóch osobnych masek .Filtracja sól i pieprz polega na usuwaniu z obrazu odosobnionych punktów jasnych (sól) i ciemnych (pieprz). W tym celu stosuje siękolejno maski pokazane poniżej.
transformata Fouriera odgrywa ważną rolę w analizie ruchu i opisie obiektów, a wiele metod przestrzennych swoje podłoże wywodzi właśnie z niej. Rozważając funkcję jednej zmiennej dla transformata Fouriera w wersji dyskretnej ma następującą postać:
1.Wykorzystując transformatę znajduje się dla obrazu jego widmo . Tak wyznaczone widmo ma jednak mało wygodną postać do dalszych przekształceń, dlatego dokonuje się jego przesunięcia, polegającego na przestawieniu ćwiartek obrazu widma: lewej-górnej z prawą-dolną i prawej-górnej z lewą-dolną. Taki sposób przedstawienia widma nazywa się centrycznym. Niskie częstotliwości w obrazie źródłowym są reprezentowane przez punkty w środkowej części widma, a wysokie częstotliwości przez punkty na obrzeżach obrazu widma.
2.Usuwa się z widma te elementy, które podejrzewamy że zawierają informację o zakłóceniach. Dokonuje się tego przemnażając odpowiadające sobie elementy funkcji widma i odpowiednio dobranej funkcji filtru . Powstaje w ten sposób nowa zmodyfikowana funkcja widma .
3.Ponieważ nowa funkcja widma odpowiada obrazowi o polepszonych właściwościach wystarczy, że zastosujemy do niej odwrotną transformację Fouriera by uzyskać obraz wolny od zakłóceń. Zmodyfikowaną macierz widma należy najpierw przegrupować, przesuwając ćwiartki w odpowiednie miejsce.
Modele barw:
HSV – Parametry barwy w modelu HSV oznaczają Hue(odcień), Saturation(nasycenie), oraz Value(wartość). Reprezentacja trójwymiarowa modelu HSV może być przedstawiona za pomocą ostrosłupa foremnego o podstawie sześciokąta. Wierzchołki podstawy symbolizują barwy spektralne. Środek podstawy oznacza barwę białą. Poruszając się zatem po podstawie, od krawędzi do środka sześciokąta otrzymuje się tonalne przejście od czystej barwy spektralnej do bieli. Wysokość ostrosłupa określa ilość czerni dodanej do barwy, tak aby otrzymać ostateczną barwę wynikową.
RGB – Model RGB powstał przy wykorzystaniu trójchromatycznej teorii widzenia, zgodnie z którą dowolną barwę można uzyskać w wyniku zmieszania trzech barw podstawowych. Model RGB jest modelem addytywnym i liniowym. W modelu RGB gama dostępnych barw jest reprezentowana przez sześcian jednostkowy w układzie kartezjańskim. W wierzchołku (0,0,0) jest umieszczona barwa biała, w wierzchołku (1,1,1) barwa czarna, w pozostałych wierzchołkach umieszczone są barwy C, M, Y, R, G i B.