Reprezentacja obrazów cyfrowych Podstawowe pojęcia i operacje
Komputerowa analiza obrazów 30 godzin, 6 punktów ECTS Treści programowe 1. Reprezentacja obrazów cyfrowych, informacja obrazowa. 2. Modele barw, rodzaje obrazów i ich charakterystyki. 3. Akwizycja i przetwarzanie wstępne obrazów cyfrowych 4. Sposoby opisu obrazów, histogram obrazu. 5. Poprawa jakości obrazu. 6. Podstawowe operacje na obrazach cyfrowych. 2
7. Metody detekcji krawędzi. 8. Metody szkieletyzacji. 9. Metody filtracji obrazów. 10. Operacje morfologiczne. 11. Segmentacja obrazów cyfrowych. 12. Metody ekstrakcji cech, deskryptory kształtu. 14. Kodowanie obrazu. 13. Analiza i rozpoznawanie obrazu. 14. Ukrywanie informacji w obrazie. 3
Warunki zaliczenia Warunkiem zaliczenia przedmiotu jest obecność studenta na zajęciach dydaktycznych, zaliczenie ćwiczeń i zaliczenie wykładu. Wykład: aktywność na zajęciach (premia do 30% oceny), zaliczenie pisemne (zaliczenie wykładu dotyczy osób, które zaliczyły ćwiczenia). Kryteria oceny poniżej 50% ocena niedostateczna 4
Literatura 5 1. Gonzalez R.C., Woods R.E., Digital Image Processing. Prentice-Hall Inc., New Jersey 2002. 2. Malina W., Smiatacz M., Cyfrowe przetwarzanie obrazów. Akademicka Oficyna Wydawnicza, Warszawa 2008. 3. Marenka A., Sadun A., Watkins Ch.D., Nowoczesne metody przetwarzania obrazów. WNT, Warszawa 1995. 4. Pavlidis T., Grafika i przetwarzanie obrazów. WNT, Warszawa 1987. 5. Pratt W.K., Digital Image Processing. John Wiley and Sons, New York 2001.
6. Tadeusiewicz R., Flasiński M., Rozpoznawanie obrazów. PWN, Warszawa 1991. 7. Tadeusiewicz R., Korohoda P., Komputerowa analiza i przetwarzanie obrazów. Wydawnictwo Fundacji Postępu Telekomunikacji, Kraków 1997. 8. Wróbel Z., Koprowski R., Praktyka przetwarzania obrazów w programie Matlab. Akademicka Oficyna Wydawnicza EXIT, Warszawa, 2004. 9. Wojnar L., Majorek M., Komputerowa analiza obrazu. Fotobit Design, Warszawa 1994. 6
Obraz analogowy Obraz analogowy O a to funkcja ciągła dwóch zmiennych przestrzennych, odwzorowująca przestrzeń punktów obrazu do przestrzeni kolorów. Zmienne te są ograniczone: O a = f(x, y), x min x x max, y min y y max, gdzie x min i x max to współrzędne lewej i prawej krawędzi obrazu, natomiast y min i y max oznaczają współrzędne górnej i dolnej krawędzi obrazu. 7
Rok 1957 pierwszy cyfrowy obraz, czarno-białe zdjęcie trzymiesięcznego chłopca zeskanowane przez jego ojca, Russell a Kirsch a o rozdzielczości 176 x 176 pikseli i wymiarach 5 x 5 cm. 8 Rys. 1.1 Pierwszy cyfrowy obraz Źródło: http://www.geekweek.pl/aktualnosci/2326/pierwszy-cyfrowy-obraz
Przetwarzanie obrazów 9 Proces, na który składa się: 1. Pozyskanie(akwizycja) obrazu i przetworzenie do postaci cyfrowej. 2. Wstępne przetworzenie obrazu, jego filtracja i wyostrzanie, a także jego binaryzacja. 3. Segmentacja obrazu i wydzielenie poszczególnych obiektów oraz ich fragmentów (np. krawędzi i innych linii). 4. Analiza obrazu i wyznaczenie cech obiektów oraz informacji o ich lokalizacji. 5. Rozpoznanie i rozumienie obrazu (identyfikacja klasy).
Segmentacja obrazu (etykietowanie) rozbicie obrazu (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. 10
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). 11
Obraz cyfrowy Przetworzenie obrazu z postaci analogowej na postać cyfrową dokonywane jest za pomocą dwóch podstawowych operacji: dyskretyzacji, kwantyzacji. W efekcie otrzymana funkcja jasności będzie określona na płaszczyźnie dyskretnej i przyjmie wartości dyskretne. Element obrazu cyfrowego o piksel (picture element). 12
Rys. 1.1 Próbkowanie i kwantyzacja Źródło: http://analizaobrazu.x25 13
Rys. 1.2 Dyskretyzacja obrazu analogowego. 14
Dyskretyzacja polega na podziale całego obrazu na punkty (piksele). Matematycznie obraz dyskretny można zapisać jako funkcję: O d = f d (x, y), N min x N max, M min y M max, gdzie x oraz y to współrzędne piksela, wartości funkcji f d są rzeczywiste, natomiast N min, N max oraz M min, M max to liczby całkowite wyznaczające przedziały zmienności współrzędnych x oraz y. 15
Siatka dyskretna wzorzec według którego dokonywana jest dyskretyzacja przestrzenna obrazu. Rodzaje siatek: siatka prostokątna najczęściej stosowana, siatka sześciokątna (heksagonalna); siatka trójkątna. 16 Rys. 1.3 Struktura siatki heksagonalnej i siatki kwadratowej
Rys. 1.4 Kwantyzacja obrazu analogowego. 17
Jasność każdego punktu jest wartością ciągłą i dlatego zanim zostanie zapamiętana w urządzeniu cyfrowym musi zostać skwantowana i zamieniona na postać cyfrową. Kwantowanie polega na zastąpieniu ciągłego obszaru liczbowego, odpowiadającego wartościom jasności punktów od bieli do czerni, skończonym zbiorem wartości z tego przedziału: Obraz cyfrowy opisuje zatem funkcja: O c = f c (x, y), 18 N min x N max, M min y M max
Na ogół stosuje się od 16 do 256 poziomów kwantyzacji. 19 256 poziomów kwantyzacji 16 poziomów kwantyzacji
20 8 poziomów kwantyzacji 2 poziomy kwantyzacji Rys. 1.5 Efekt kwantyzacji obrazu.
Dithering W fotografii cyfrowej słowo dithering ([\ˈdi-thər\] wahać się) rozumiane jest jako rozproszenie, dodanie szumów. 21 Rys. 1.6 Obraz w odcieniach szarości, binaryzacja i dithering.
Obraz cyfrowy jako macierz Z matematycznego punktu widzenia obraz cyfrowy jest tablicą postaci: 22 L(x, y) = [ L(0,0) L(1,0) L(W 1,0) L(0,1) L(1,1) L(W 1,1) ]... L(0, W 1) L(1, W 1) L(W 1, H 1) gdzie: L(x, y) jasność piksela o współrzędnych (x, y), W, H szerokość oraz wysokość obrazu.
Obraz cyfrowy można interpretować jako funkcję L przypisującą pikselowi o współrzędnych (x,y) jasność z przedziału [0; Lmax] dla x [0,1,, W 1],y [0,1,, H 1], gdzie W i H oznaczają szerokość i wysokość obrazu 23 Rys. 1.7 Obraz jako macierz
W zależności od liczby dostępnych poziomów jasności wyróżniamy następujące typy obrazów: obrazy binarne, monochromatyczne, kolorowe. 24 W przypadku obrazu monochromatycznego: 0 czerń Lmax biel
W historii obrazu cyfrowego struktura punktu przyjmowała coraz większe wartości: 1 bit wartości 0 lub 1, 8 bitów wartości od 0 do 255 (skala szarości) lub tryb indeksowany, 15 i 16 bitów 3 podstawowe barwy addytywnego modelu RGB, po 5 bitów na każdą składową (32768 możliwści) lub po 5-6-5 bitów odpowiednio (65536 możliwości), 24 i 32 bity model RGB i kanał alfa (16777216 barw). 25
Model RGB w zapisie 24-bitowym jest opisany za pomocą 3-bajtowej liczby, której najmłodszy bajt przechowuje wartość składowej niebieskiej, drugi bajt wartość składowej zielonej, a trzeci, najstarszy bajt wartość składowej czerwonej. Barwa może być zapisywana szesnastkowo jako: 0xrrggbb której kolejne pary stanowią poszczególne składowe R, G, B o wartościach od 0 do 255 każda. Jest wyliczana jako: R*65536 + G*256 + B 26
i może być zapisana w notacji języka C jako 27 unsigned int color = (R<<16)+(G<<8)+B; Wyłuskanie składowych barwy w języku C: unsigned char B = color & 0xFF; unsigned char G = (color>>8) & 0xFF; unsigned char R = (color>>16) & 0xFF;
Monochromatyzacja obrazu cyfrowego Przekształcenie obrazu kolorowego RGB na obraz w skali szarości: Lw = 0.299 Red + 0.587 Green + 0.114 Blue Algorytm for(x=0; x<width; x++) for(y=0; y<height; y++) L w [x,y]= 0.299*L R [x,y]+0.587*l G [x,y]+0.114*l B [x,y]; 28
Binaryzacja obrazu monochromatycznego Należy wyznaczyć próg binaryzacji T (threshold) Algorytm for(x=0; x<width; x++) for(y=0; y<height; y++) if (L[x,y] < T) L w = 0 ; else L w = 255; 29
Sposoby reprezentacji obrazów cyfrowych 30 118 0 [ 118 1 91 91 ] 0 0 255 0 45 118 0 [ 255 1 45 ] [ 118 12 91 95 0 91 ] [ 118 15 73 91 ] 150 3 90 0 5 0 111 9 2 Rys 1.8 Reprezentacja obrazu w odcieniach szarości za pomocą macierzy i obrazu RGB za pomocą trzech macierzy.
255 [ 118] 0 [ 0] 45 [ 91] 95 0 73 255 1 45 [ 118] [ 12] [ 91] 118 15 91 150 3 90 [ 0 ] [ 5] [ 0 ] ( 111 9 2 ) 31 Rys 1.9 Reprezentacja obrazu RGB za pomocą pojedynczej macierzy, której elementami są wektory trójwymiarowe.
Obraz jako zbiór nieostry 32 Rys. 1.10 Ogólny schemat przetwarzania obrazów z zastosowaniem zbiorów rozmytych
Obraz cyfrowy może zostać zapisany w postaci tablicy: 33 gdzie: l 00 l 10 l W 1,0 l [ 01 l 11 l W 1,1 ], l 0,H 1 l 1,H 1 l W 1,H 1 W, H szerokość i wysokość obrazu, l xy poziom szarości piksela o współrzędnych (x, y).
Rozmycie obrazu polega na przypisaniu każdemu pikselowi funkcji przynależności μ A poziomu jasności tego piksela, określającej stopień jego przynależności do zbioru rozmytego 34 A wyznaczonego na podstawie pewnej, wybranej cechy obrazu: μ A (l 00 ) μ A (l 10 ) μ A (l W 1,0 ) μ [ A (l 01 ) μ A (l 11 ) μ A (l W 1,1 ) ]. μ A (l 0,H 1 ) μ A (l 1,H 1 ) μ A (l W 1,H 1 )
Tablica LUT Tablicowanie technika programistyczna wykorzystująca strukturę nazywaną tablicą (ang. lookup table) do przechowywania przygotowanych wcześniej danych, co umożliwia zaoszczędzenie czasu wymaganego na ich obliczenie kosztem większego zużycia pamięci. 35
Rozważmy przekształcenie zdjęcia monochromatycznego opisanego funkcją F: [0,255] [0,255]. W takim przypadku na każdym pikselu obrazu należy wykonać operację F: for (int x = 0; x < Height; i++) for (int y = 0; y < Weight; j++) L w [x,y] = F(L[x,y]); Pytanie, czy to się opłaca? Funkcja F wykonuje się Width Height razy. W przypadku użycia tablicy LUT, funkcja F została wykonana 256 razy. 36
Liczba kolorów jest od 0 do 255. Przygotowanie tablicy LUT: for (int i = 0; i < 256; i++) LUT[i] = F[i]; 37 Zmiana kolorów pikseli używając tylko pomocą tablicy LUT: for (int x = 0; x < Height; x++) for (int y = 0; y < Weight; y++) L w [x,y] = LUT[L[x,y]];
Tab. 1 Tabela przekodowań LUT dla negatywu. 38 Wartość poziomu jasności Wartość poziomu jasności obrazu źródłowego obrazu wynikowego 0 255 1 254 254 1 255 0 for(int i=0; i<256; i++) LUT[i] = 255 i;
Przetwarzanie obrazu to szeregu przekształceń mających na celu: poprawę jego jakości, usunięcie szumu, podkreślenie pewnych składowych dla ich lepszej widoczności, analizę i rozpoznawanie oraz przekształcenia do postaci ułatwiającej kodowanie. Poprawa jakości zwiększa dynamiczny zakres pewnych cech co później prowadzi do ułatwienia ich wykrycia. 39
Operacje wykonywane na obrazie: 1. Przekształcenia bezkontekstowe (punktowe): przekształcenia arytmetyczne, przekształcenia geometryczne, przekształcenia logiczne. 2. Przekształcenia kontekstowe: przekształcenia morfologiczne, filtry cyfrowe, transformacje Fouriera. 40
Zastosowania 41 medycyna, eksploracja kosmosu, rozpoznawanie dokumentów, identyfikacja za pomocą cech biometrycznych, tworzenie obrazów artystycznych, ukrywanie informacji, przemysł, systemy informacji przestrzennej.
Szum w obrazie 42 Szum zniekształca i degraduje idealny obraz. Przed przetwarzaniem obrazu należy go usunąć. Miara zaszumienia to: stosunek sygnału do szumu (signal to noise ratio) SNR = signal RMS noise gdzie v jest szumem, RMS square root of the mean.
Typy szumów 43 szum Gaussowski, dobrze symuluje zakłócenia, które pojawiają się w rzeczywistości N(x) = 1 (x μ) 2 2πσ e 2σ 2, szum jednostajny U(x) = { 1 x [a, b] 0 poza, b a szum typu pieprz i sól, przyjmuje wartości ekstremalne.
Pakiet R 44 Sygnał jednowymiarowy > wave=2*sin(2*pi*(1:200)/50 +.6*pi) Szum Gaussowski > norm = rnorm(200,0,1) Szum jednostajny >unif = runif(200, min=0, max=1) Szum typu pieprz i sól > sp = sample(-1:1,200,rep = TRUE, prob=c(.05,.9,.05)) >plot.ts(wave+sp, ylim=c(-3,3), main="wave+saltpaper")
45
46
Modelowanie szumów 47 szum addytywny dodany szum nie zależy od obrazu: L (x, y) = L(x, y) + v(x, y) szum multiplikatywny szum jest zależny od obrazu: L (x, y) = L(x, y) + L(x, y) v(x, y) gdzie v oznacza szum, L obraz, L obraz zaszumiony Miary zaszumienia (musimy znać obraz we i obraz zaszumiony) Mean quadratic difference (L(x, y) L (x, y)) 2 x,y Mean absolute difference x,y L(x, y) L (x, y) Wyodrębnienie szumu v(x, y) = L (x, y) L(x, y)
Transformacje liniowe Operacje linowe są to przekształcenia, w których stopień szarości obrazu wynikowego jest liniową funkcją stopnia szarości obrazu źródłowego. Do operacji liniowych zaliczamy dodanie lub odjęcie liczby do obrazu oraz mnożenie lub dzielenie obrazu przez liczbę. Jeżeli wynik operacji przekracza dopuszczalny zakres, należy zastosować jedno z trzech podejść: 48 wszystkie punkty o wartościach równych bądź większych od 255 są wyświetlane jako biel, natomiast o wartościach równych lub mniejszych od 0 jako czerń;
wszystkie punkty o wartościach większych od 255 są traktowane jako wynik modulo 256; 49 po każdej operacji arytmetycznej jest wykonywana operacja normalizacji obrazu, polegająca na zmianie wartości stopnia jasności poszczególnych punktów obrazu źródłowego do ustalonego zakresu tych wartości w obrazie wynikowym; funkcją przejścia poziomów jasności między punktami obrazu źródłowego, a wynikowego najczęściej jest funkcja liniowa lub potęgowa.
Po wykonaniu operacji arytmetycznych jasność obrazu wynikowego wyraża się wzorem L w x, y a L x, y b, 50 gdzie a, b to stałe, będące parametrami operacji. Dodanie lub odjęcie stałej od obrazu rozjaśnia bądź przyciemnia tonację, czyli prowadzi do zwiększenia lub zmniejszenia jasności obrazu.
51 Obraz przyciemniony Obraz po operacji rozjaśnienia
Mnożenie obrazów przez stałą a wpływa na kontrast obrazu. Jeżeli a 1 kontrast jest zwiększany, natomiast dla 0 a 1 kontrast jest zmniejszany. Kontrast interpretuje się jako stosunek pomiędzy bielą, a czernią. Ma on znaczący wpływ na jakość wyświetlanego obrazu. 52
Obraz oryginalny 53
Obraz po zwiększeniu kontrastu Obraz po zmniejszeniu kontrastu 54
Operacja negatywu Ludzki wzrok słabo interpretuje jasne szczegóły na ciemnym tle w porównaniu do obrazów, gdzie tłem jest kolor czarny, a szczegóły są białe. Aby wyeliminować tą słabość ludzkiego oka stosuje się negatyw obrazu, w którym jasność piksela wynikowego dana jest wzorem: x y L w 255 L,. 55
56 Obraz oryginalny Negatyw obrazu
57
Transformacje nieliniowe Klasyczne, nieliniowe transformacje: potęgowanie x y L x y,, 0 L w,, 58 pierwiastkowanie x, y L x y L w, logarytmowanie obrazu L w x, y log( L x, y 1).
Otrzymany obraz wynikowy musi być odpowiednio znormalizowany. Dokonuje się tego poprzez normalizację jasności funkcji obrazu źródłowego i następnie przeskalowanie jej do pełnego zakresu. W przypadku funkcji potęgowej, przy założeniu, że w źródłowym obrazie L 0 i L 255 funkcja jasności obrazu min max wynikowego L w ( x, y) będzie ostatecznie dana wzorem L x, y L w x, y 255. Lmax 59
Podobnie dla funkcji logarytmicznej jasność punktu wynikowego będzie obliczana z zależności log( L x, y 1) L w x, y 255 log( L max 1). 60 Operacja potęgowania dla całkowitych wartości 0 może być zrealizowana za pomocą mnożenia obrazu przez obraz, najczęściej stosuje się wtedy wartości 2 lub 3.
Funkcja kwadratowa powoduje podwyższenie kontrastu w obszarze dużych wartości. Efektem jest przyciemnienie obrazu z większym zróżnicowaniem jasnych partii. 61 Dla wartości 0 i 1 uzyskujemy operację pierwiastkowania obrazu, najczęściej stosowane jest 1 2 Operacja ta powoduje podwyższenie kontrastu w obszarze małych wartości jasności obrazu. Rozjaśnia obraz z jednoczesnym zróżnicowaniem najciemniejszych partii.
62 2 1 2
Funkcja logarytmiczna powoduje silne rozjaśnienie i zróżnicowanie najciemniejszych partii obrazu. 63
Operacje nieliniowe poprawiają kontrastowość informacji zapisanej w obrazie i mają za zadanie uzyskanie pozytywnego wrażenia u użytkownika. Stosowane są przy wyświetlaniu obrazu na urządzeniu do wizualizacji, poprawie kontrastu zdjęć rentgenowskich i korekcji sygnału lamp analizujących obraz (korekcji gamma). 64
Binaryzacja obrazu 65 przekształcenie obrazu mającego wiele poziomów szarości, w obrazy czarno-białe, w efekcie następuje radykalna redukcja ilości informacji zawartej w obrazie binaryzacja umożliwia wykonywanie pomiarów na obrazie (liczebność elementów, pole powierzchni, długość), analizowanie i modyfikowanie kształtu obiektów L 0, L( x, y) T ( x, y). w 1, L ( x, y ) T
Obraz oryginalny Binaryzacja z dolnym progiem (próg 128) 66
67 Binaryzacja z górnym progiem (próg 128) Binaryzacja z podwójnym progiem p1 = 64, p2 = 128
Dziękuję za uwagę! 68