1 Opis matematyczny obrazów cyfrowych
1.1. Obraz cyfrowy
Chęć zapisania obrazów otaczającego nas świata nieodłącznie towarzyszy ludziom od zarania dziejów. Już tysiące lat temu nasi przodkowie utrwalali zdarzenia z życia codziennego, tworząc rysunki na ścianach jaskiń. Wraz z rozwojem cywilizacji zmieniały się metody utrwalania obrazów - przez malowanie na płótnie, fotografię, film, po technikę cyfrową. Wszystkie były rewolucyjne, również opanowanie techniki cyfrowej stanowiło przełom. Zapis obrazu zakodowanego w postaci ciągu cyfr daje wiele nowych możliwości. Jest odporny na upływ czasu, łatwo go poddać obróbce czy kompresji. Możliwości te znalazły zastosowanie w wielu dziedzinach: w medycynie (tomografia medyczna, ultrasonografia), przemyśle (tomografia procesowa), geografii, geologii, rozpoznawaniu tekstu, w multimediach itp.
Obraz wizyjny jest najważniejszym źródłem informacji o świecie rzeczywistym. Widzenie jako proces otrzymywania i analizy obrazów może być realizowane w cyfrowych systemach przetwarzania takiego rodzaju informacji dzięki szybkiemu rozwojowi mikroelektroniki.
Do niedawna rozwój takich systemów hamowała złożoność czasowa i pamięciowa algorytmów przetwarzania i analizy obrazów. Zwykle jeden piksel obrazu monochromatycznego jest reprezentowany za pomocą ośmiobitowej liczby dwójkowej, co daje 28 = 256 stopni szarości (ang. grey level). Ponieważ obraz kolorowy zawiera zwykle trzy składowe RGB (ang. red, green, blue - czerwony, zielony, niebieski), jeden piksel takiego obrazu jest reprezentowany przez trzy ośmiobitowe liczby dwójkowe. Przy rozdzielczości 640x480 ten obraz zajmuje w pamięci komputera 900 kB, a prędkość jego przetwarzania w wypadku zmiany klatek z częstotliwością 25 obrazów/s musi wynosić co najmniej 256 MB/s. Do przetwarzania informacji potrzeba więc sprzętu komputerowego o odpowiednio dużej mocy obliczeniowej.
1.2. Pojęcia podstawowe
Dla pełnego zrozumienia zagadnień poruszanych w niniejszej książce niezbędna jest znajomość pojęć podstawowych.
Przetwarzanie obrazów to dyscyplina naukowa i techniczna zajmująca się wzbogacaniem informacji wizualnej w celu lepszego i pełniejszego zinterpretowania ich przez człowieka oraz do automatycznej analizy obrazów.
Zagadnienia związane z przetwarzaniem obrazów były tematem wielu konferencji, sympozjów i kongresów, zarówno krajowych, jak i międzynarodowych, z których najważniejsze to: International Conference on Image and Vision Computing (ICIVC), International Conference on Computer Vision Theory and Applications (VISAPP), Conference on Imaging Theory and Applications (IMAGAPP), Symposium Image Processing and Analysis: International Conference on Computational & Experimental Engineering and Sciences (ICCES).
Wydano wiele książek i monografii poświęconych tej tematyce. Do najbardziej znaczących można zaliczyć: [Ballard, Brown, 1982; Materka, 1991; Chellappa, 1992; Tadeusiewicz, 1992; Teuber, 1993; Baxes, 1994; Dougherty, 1994; Awcock, Thomas, 1995; Woźnicki, 1996; Bovik, 2000; Erhardt-Ferron, 2000; Hader, 2000; Shapiro, Stockman, 2000; Zuech, 2000; Nikolaidis, Pitas, 2001; Pitas, 2001; Jahne, 2002, Russ, 2002; Sharma, 2002; Forsyth, Ponce, 2003; Wiatr, 2003; Davies, 2004; Jahne, 2004; Jensen, 2004; Acharya, Ajoy, 2005; Umbaugh, 2005; Bauer, 2006; Woods, 2006; Gonzalez, Woods, 2007; Sonka i in., 2007].
Biorąc pod uwagę praktyczne aplikacje systemów przetwarzania i analizy obrazów, wyróżnia się następujące grupy ich zastosowań:
1. Poprawa jakości obrazu - redukcja zakłóceń i korekcja zniekształceń obrazu, eliminacja nadmiarowej informacji, wyeksponowanie szczegółów obrazu w celu ułatwienia jego interpretacji [O'Handley, Green, 1972; Andrews, Bob, 1977; Andrews, 1979; Oppenheim, Schafer, 1979; Oppenheim, 1982; Gonzalez, Wintz, 1987; Bates, McDonnell, 1989; Teuber, 1993; Benoit, 1995; Watkins i in., 1995; Awcock, Thomas, 1995; Castleman, 1996; Laihanen, 2000; Pratt, 2001; Favaro, Soatto, 2006; Damiani i in., 2007].
2. Rozpoznawanie otoczenia w robotyce - zadania zwykle stawiane systemom wizyjnym stosowanym w robotyce to: lokalizacja i ustalenie orientacji obiektu (czasami także jego rozpoznanie) oraz analiza otoczenia dla robotów mobilnych. Zwłaszcza drugie z tych zadań wymaga analizy sceny 3D [Pugh, 1983; Horn, 1986; Krotkov, 1989; Ayache, 1991; Vernon, 1991; Tadeusiewicz, 1992; Haralick, Shapiro, 1993; Colin, Kwok, 1995; Batchelor, Whelan, 1997; Tadeusiewicz, Korohoda, 1997; Nowakowski, Podsędkowski, 2002; Florczyk, 2005].
3. Kodowanie obrazu - w telekomunikacji w celu efektywnego wykorzystania kanałów komunikacyjnych przez usunięcie informacji nadmiarowej bez pogorszenia jakości transmitowanego obrazu, ocenianej subiektywnie [Wintz, 1972; Materka, 1975; Gonzalez, Wintz, 1987; Kunt i in., 1987; Leonard, 1990; Skarbek, 1993; Dasarathy, 1995; Poynton, 1996; Jayant, 1997; Shi, Sun, 1999; Li, Gray, 2000; Uhl, Pommen, 2005; Wu, Rao, 2005; Woods, 2006; Damiani i in., 2007].
4. Ilościowa analiza obrazu
a) w badaniach medycznych, naukowych [Preston, 1976; Bartels, Wied, 1977; James, 1985; Herrmann i in., 1987; Kulikowski, 1991; Materka, 1991; Barbosa, Campliho, 1994; Bowen i in., 1995; Clark, Hester, 1996; Leondes, 1997; Felinger, 1998; Leondes, 1998; Augustyniak, 2001; Northrop, 2001; Webster, 2001; Bieniecki i in., 2002; Makela, in., 2002; Suri i in., 2002; Zieliński, Strzelecki, 2002; Aichinger i in. 2003; Bucur, 2003; Semmlow, 2004; Bieniecki, 2005; Bieniecki, Grabowski, 2005; Constaridou, 2005; Goshtasby, 2005; Jan, 2005; Leondes, 2005a; Leondes, 2005b; Prince, Links, 2005; Suri i in., 2005; Cox, 2006; Francis, 2006; Gocławski, Anioł, 2006; Oppelt, 2006; Sekulska-Nalewajko i in., 2006];
b) w przemysłowej kontroli jakości, przemysłowych systemach sterowania [Vernon, 1991; Dougherty, Laplante, 1995; Heijden, 1995; Wojnar, 1998; Demant i in., 1999; Chim, 2000; Davies, 2000; Pham, Alcock, 2000; Strzecha, 2002; Graves, Batchelor, 2003; Jeżewski, Krzeszewski, 2003; Mercer, 2003; Davies, 2004; Goshtasby, 2005; Jeżewski, 2005; McCann, Scott, 2005; Sankowski i in., 2005; Berthiaux i in., 2006, Fabijańska, 2007].
Generalnie obrazem nazywamy dwuwymiarową funkcję L (x, y) rozkładu jasności we współrzędnych przestrzennych należących do dziedziny obrazu [Levine, 1985; Materka, 1991; Teuber, 1993; Dougherty, 1994; Tadeusiewicz, Korohoda, 1997; Shapiro, Stockman, 2000; Pitas, 2001; Wiatr, 2003; Jahne, 2004; Umbaugh, 2005; Woods, 2006; Gonzalez, Woods, 2007; Sonka i in., 2007], której wartość L (amplituda) we współrzędnych (x, y) określa intensywność (jasność) obrazu w tym punkcie. Ponieważ światło jest formą energii, dlatego wartość funkcji L (x, y) jest nieujemna i skończona:
0 < L(x, y) < ?, (1.1)
gdzie:
x, y - współrzędne przestrzenne obrazu.
Wartość funkcji intensywności L(x, y) w dowolnym punkcie obrazu jest proporcjonalna do jasności (stopnia szarości) obrazu w tym punkcie i zależy od dwóch zjawisk w obserwowanej scenie:
luminacji
i(
x,
y); odbicia części światła padającego na scenę, opisanego przez współczynnik odbicia
r(
x,
y):
L(x, y) = i(x, y)r(x, y), (1.2)
przy czym spełnione są warunki:
0 < i(x, y) < ?, (1.3)
0 < r(x, y) < ?. (1.4)
W cyfrowym przetwarzaniu operujemy terminem obraz cyfrowy, czyli obraz, którego współrzędne przestrzenne poddano dyskretyzacji (próbkowaniu) oraz wartości L (x, y) poddano kwantyzacji [Oppenheim, 1982; Levine, 1985; Materka, 1991; Ostrowski, 1992; Skarbek, 1993;
Teuber, 1993; Dougherty, 1994; Tadeusiewicz, Korohoda, 1997; Shapiro, Stockman, 2000; Pitas, 2001; Wiatr, 2003; Jahne, 2004; Umbaugh, 2005; Woods, 2006; Gonzalez, Woods, 2007; Sonka i in., 2007]. Można go interpretować jako macierz, w której numer wiersza i kolumny identyfikują jej element, czyli punkt obrazu (piksel) [Oppenheim, 1982; Levine, 1985; Materka, 1991; Ostrowski, 1992; Skarbek, 1993; Teuber, 1993; Dougherty, 1994; Tadeusiewicz, Korohoda, 1997; Shapiro i Stockman, 2000; Pitas, 2001; Wiatr, 2003; Jahne, 2004; Umbaugh, 2005; Woods, 2006; Gonzalez, Woods, 2007; Sonka i in., 2007]. Nazwa ta jest skrótem angielskich słów picture element (pixel), czyli element obrazu. Każdy punkt obrazu (piksel) cechują dwie podstawowe wielkości: położenie w obrazie i wartość w punkcie. Obraz zapisany jako tablica pikseli nazywany jest rastrowym (w odróżnieniu od tzw. obrazu wektorowego, w którym nie zapamiętuje się elementów obrazu, ale stosuje technikę matematycznego opisu kształtów za pomocą wektorów).
Dwuwymiarowa funkcja próbkująca s (x, y) określona jest zależnością:
(1.5)
gdzie:
?(x, y) - dwuwymiarowa funkcja Diraca.
Obraz cyfrowy można zapisać w postaci:
LS (x, y) = L(x, y) o s(x, y), (1.6)
gdzie:
o - operator splotu.
Uwzględniając wzór (1.5):
dla:
?x = ?y = 1
równanie (1.7) upraszcza się do postaci:
(1.9)
W konsekwencji obraz cyfrowy można przedstawić w postaci macierzy:
(1.10)
Wartości M i N określają odpowiednio liczbę kolumn i wierszy macierzy, której elementy reprezentują punkty obrazu cyfrowego. Ich iloczyn M×N daje całkowitą liczbę punktów obrazu cyfrowego (tzw. pikseli), a tym samym określa jego rozdzielczość. Położenie, opisywane przez współrzędne x i y, jednoznacznie lokalizuje dany punkt obrazu.
W niniejszej książce najczęściej będzie mowa o obrazach monochromatycznych. W ich wypadku można mówić o poziomie jasności (szarości) l (ang. grey level), który jest intensywnością L (x, y) obrazu monochromatycznego dla danego punktu obrazu (x, y):
0 < Lmin ? l ? Lmax < ?, (1.11)
gdzie:
Lmin, Lmax - odpowiednio minimalna i maksymalna wartość przyjmowana przez funkcję L (x, y).
Przedział [Lmin , Lmax] nazywa się skalą jasności (szarości) (ang. grey scale). Zakres poziomów szarości wynika z właściwości rzeczywistego toru wizyjnego, a zwłaszcza zakresu zmian sygnału wizyjnego z przetwornika optoelektrycznego.
Podczas kwantyzacji przedział [Lmin , Lmax] zostaje podzielony na L równomiernych przedziałów o szerokości ?L:
L * ?L = Lmax - Lmin. (1.12)
Wszystkim wartościom sygnału wizyjnego wewnątrz k-tego przedziału:
L ? (Lmin + k?L, Lmin + (k + 1)?L) (1.13)
zostaje przyporządkowana liczba całkowita z zakresu: l ? {0, 1, ..., L-1}, reprezentująca poziom szarości, a więc wartość intensywności oświetlenia.
W większości praktycznych zastosowań przedział wartości funkcji jasności L(x, y) jest kwantyzowany do 256 poziomów. Wówczas jeden punkt obrazu cyfrowego odpowiada dokładnie jednemu bajtowi (8 bitów) pamięci operacyjnej systemu komputerowego realizującego przetwarzanie i analizę obrazów. Przyjmuje się, że poziom jasności równy 255 odpowiada bieli, a 0 czerni.
Co oznacza sformułowanie "jasność w punkcie", inaczej mówiąc - co reprezentuje wartość piksela? Kiedy mózg rejestruje jakiś obraz, oznacza to, że oko odebrało dla różnych położeń różne wartości natężenia fal elektromagnetycznych (które w zakresie widzialnym, czyli takim, na jaki odbiorniki w naszych oczach są czułe, nazywane są falami świetlnymi) dla różnych długości tych fal.
Mówiąc najprościej: różne długości fal świetlnych odpowiadają różnym kolorom rejestrowanym przez nasz wzrok, natomiast różne natężenie fali o danej długości jest odbierane jako stopień intensywności danej barwy w stosunku do innych barw. Przedstawione wyżej rozważania można uogólnić także na obrazy barwne [Williamson, Cummins, 1983; Hardeberg, 2001; Sharma, 2002; Lee, 2005, Malina, Smiatacz, 2008].
Rysunek 1.1. Piksel obrazu barwnego RGB.
Tak jak w wypadku obrazów monochromatycznych do opisu pojedynczego punktu obrazu wystarcza jedna liczba określająca jasność obrazu w tym punkcie, tak w przypadku obrazów barwnych niezbędne są bardziej wyrafinowane techniki ich kodowania. Najlepszym sposobem pod względem prostoty zapisu (oraz wyświetlania za pomocą cyfrowego monitora) jest tzw. schemat kodowania RGB (rys. 1.1). Kolor piksela jest rozłożony na trzy podstawowe składowe: czerwoną (ang. red), zieloną (ang. green) oraz niebieską (ang. blue). Jeżeli teraz każdej ze składowych przydzielony zostanie jeden bajt pamięci (8 bitów), to będzie można reprezentować 256 odcieni każdej barwy podstawowej (od 0 do 255), co daje paletę ponad 16 milionów kolorów (dokładnie 16 777 216 kolorów), które można przypisać konkretnemu pikselowi. Na przykład kolor zielony jest reprezentowany przez wartości 0, 255, 0, kolor niebieski 0, 0, 255, a kolor biały 255, 255, 255.
Oprócz modelu RGB są inne modele barw [Gonzalez, Woods, 2007], m.in.:
CMYK (ang.
cyan, magenta, yellow, black), stosowany w druku kolorowym w poligrafii i metodach pokrewnych (atramenty, tonery i inne materiały barwiące w drukarkach komputerowych, kserokopiarkach itp.);
HSV (ang.
hue saturation value), nawiązujący do sposobu, w jaki widzi ludzki narząd wzroku. Według tego modelu wszelkie barwy wywodzą się ze światła białego, którego część widma zostaje pochłonięta, a część odbita od oświetlanych przedmiotów.
Jak wspomniano, schemat RGB dobrze się nadaje do zapisu danych czy wyświetlania za pomocą monitora cyfrowego, gorzej natomiast sprawdza się w kodowaniu i kompresji obrazów czy drukowaniu.
1.3. Przetwarzanie informacji obrazowej
Przeznaczenie, ogólną koncepcję, realizowane funkcje, parametry i właściwości systemów przetwarzania i analizy obrazów przedstawiono w wielu opracowaniach [Reddy, Hon, 1979; Uhr i in., 1986; Wigan, 1986; Fu i in., 1987; Gonzalez, Wintz, 1987; Pavlidis, 1987; Jain, 1989; Lim, 1990; Shapiro, Rosenfeld, 1992; Tadeusiewicz, 1992; Milford, 1993; Libbey, 1994; Dougherty, Laplante, 1995; Tadeusiewicz, Korohoda, 1997; Shapiro, Stockman, 2000; Zuech, 2000; Pitas, 2001; Pratt, 2001; Jahne, 2002, Russ, 2002; Sharma, 2002; Forsyth, Ponce, 2003; Wiatr, 2003; Davies, 2004; Jahne, 2004; Jensen, 2004; Acharya, Ajoy, 2005; Umbaugh, 2005; Bauer, 2006; Woods, 2006; Gonzalez, Woods, 2007; Sonka i in., 2007].
Układ pozyskiwania i przetwarzania obrazów można sprowadzić do czterech podstawowych komponentów funkcjonalnych [Materka, 1991; Castleman, 1996; Jahne, 2002; Wiatr, 2003; Semmlow, 2004]:
systemu wprowadzania obrazu (np. kamera lub skaner CCD, rejestrator wideo), układu przetwarzania obrazu optycznego na sygnał elektryczny (przetwornik optoelektryczny) przetwornika analogowego sygnału elektrycznego na obraz cyfrowy (ang.
frame grabber), systemu przetwarzającego (np. komputer klasy PC) wraz z oprogramowaniem do przetwarzania i analizy obrazów. Sygnał z kamery po obróbce w przetworniku analogowo-cyfrowym trafia do pamięci buforowej, z której jest w miarę potrzeby wydobywany i przetwarzany przez odpowiedni procesor. Oprócz sterowania optyką kamery niekiedy celowe jest jej fizyczne przemieszczanie w celu swobodnego wybierania kadru, podlegającego analizie i przetwarzaniu [Tadeusiewicz, Korohoda, 1997].
Ogólny schemat systemu wprowadzania obrazów obserwowanej sceny do systemu komputerowego przedstawiono na rys. 1.2.
Rysunek 1.2. Układ wprowadzania obrazu wraz z elementami kontrolnymi i sterującymi. (Źródło: Tadeusiewicz i Korohoda, 1997).