Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 30 2.3. Model rastrowy Rastrowy model danych wykorzystywany jest dla gromadzenia i przetwarzania danych pochodzących ze skanowania istniejących materiałów mapowych, zdjęć lotniczych i satelitarnych oraz obrazów teledetekcyjnych. W modelu rastrowym dane o obiektach świata rzeczywistego przechowywane są w postaci regularnych elementów powierzchniowych zwanych pikselami (ang. pixel od picture element). Piksele przeważnie mają kształt kwadratu chociaż można się spotkać również z pikselami w kształcie prostokąta. Obraz tworzony przez piksele nazywany jest rastrem. Z natury rzeczy raster jest prostokątem, którego wymiary określone są w pikselach. Inaczej rzecz ujmując można powiedzieć, że piksel jest najmniejszą rozróżnialną powierzchnią rastra. Rysynek 2.19 przedstawia ilustrację rastra o wymiarach H x W (wysokość x szerokość) i wyodrębnionego w nim piksela. Rys. 2.19. Ilustracja rastra i jego najmniejszego elementu - piksela Raster w sposób naturalny może być reprezentowany przez tablicę dwuwymiarową, w której poszczególne elementy przechowują informacje o odpowiednich pikselach. Położenie każdego piksela w rastrze jest identyfikowane przez podanie wiersza i kolumny w tablicy przyporządkowanej rastrowi. Rys. 2.20. Ilustracja zapisu rastra w tablicy Wartości zapisywane w tablicy są nazywane atrybutami elementu rastra. Korzystając z tablicy dwuwymiarowej dla każdego piksela możemy zapisać jeden atrybut. W przypadku przypisywania do piksela większej liczby atrybutów należy zamiast pojedynczego pola
Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 31 stosować wektor atrybutów, co prowadzi do tablicy trójwymiarowej. Trzeci wymiar tablicy będzie określał płaszczyzny odpowiednich atrybutów, mogących tworzyć warstwy tematyczne np. poziomy informacyjne w zobrazowaniach teledetekcyjnych. Rys. 2.21. Ilustracja wielu atrybutów przypisywanych do elementu rastra W zależności od dopuszczalnych wartości atrybutu piksela należy zastosować odpowiedni typ zmiennej do jego przechowywania a tym samym odpowiedni zasób pamięci do zapisu całej tablicy rastra. Najczęściej wartość atrybutu przekłada się na kolor jakim dany piksel będzie rysowany podczas prezentacji graficznej. Przyjmując, że do zapisu atrybutu piksela wykorzystamy jeden bit, możemy wyróżnić dwa jego stany wartości tzn. zero lub jeden, mówimy wtedy o rastrze monochromatycznym zwanym popularnie czarno-białym. W rastrze monochromatycznym w jednym bajcie pamięci zapisujemy więc kolory ośmiu kolejnych pikseli. Przy rastrach w których wyróżnia się więcej kolorów trzeba przeznaczyć odpowiednio więcej pamięci dla przechowania wartości atrybutu piksela. Wielkość pamięci potrzebnej do zapisu rastra możemy określić na podstawie następującego wzoru: B N = H * W * 8 (2.7) gdzie N - wielkość rastra wyrażona w bajtach, H - wysokość rastra w pikselach, W - szerokość rastra w pikselach, B - liczba bitów do zapisu jednego piksela.
Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 32 Obraz rastrowy powstaje jako bezpośrednie zobrazowanie rzeczywistości np. w wyniku wykonania zdjęć lotniczych lub satelitarnych gdzie każdemu pikselowi obrazu przyporządkowywany jest odpowiedni fragment terenu. Rys. 2.22. Ilustracja tworzenia rastra Cechą charakterystyczną takich zobrazowań jest wymiar terenu zobrazowany jednym pikselem rastra. Im piksel mniejszy tym wierniejsze zobrazowanie terenu. Dla przykładu satelita LANDSAT TM oferuje obrazy z pikselem odpowiadającym obszarowi 30m x 30m dając obrazy odpowiadające obszarom 185km x 185 km. Satelita SPOT natomiast oferuje piksel 20m x 20m i obrazy obejmujące obszary 60km x 60km. Najdokładniejszymi obecnie zobrazowaniem satelitarnym są zdjęcia z satelity IKONOS o rozdzielczości 0,82m i QuickBird 0,61m. Rys. 2.23. Zdjęcie z satelity IKONOS www.spaceimaging.com.
Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 33 Innym sposobem tworzenia rastrów odnoszących się do rzeczywistości jest skanowanie istniejących map na urządzeniach zwanych skanerami. Proces skanowania polega na podziale oryginału na małe elementy i pomierzeniu ich jasność. W tym celu skaner wyposażony jest w odpowiednią liczbę światłoczułych receptorów, z których każdy mierzy jasność małego wycinka oryginału. W przypadku skanowania kolorowego również mierzona jest jasności lecz z zastosowaniem odpowiednich filtrów dla głównych kolorów RGB co oznacza indywidualny pomiar jasności dla poszczególnych składowych. Poniżej przedstawiono ilustrację procesu skanowania. Oryginał Matryca skanera Rys. 2.24. Ilustracja procesu skanowania W wyniku nałożenia matrycy skanera na oryginał dokonujemy jego podziału na piksele dla których w procesie skanowania rejestrowany jest ich kolor. Do określenia precyzji skanowania używa się charakterystyki określanej jako rozdzielczość. Rozdzielczość określana jest w pikselach na cal i oznaczana skrótem DPI (ang. dot per inch). Na podstawie rozdzielczości określamy wymiary fragmentu oryginału
Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 34 odwzorowany w jednym pikselu. Przy rozdzielczości 254 dpi jest to 0.1mm. Rozdzielczość jest więc jednostką charakteryzującą precyzję skanowania. Im wartość jest większa tym mniejszy jest piksel a tym samym wierniejsze odwzorowanie oryginału. Jednocześnie wzrost rozdzielczość powoduje przyrost wielkości rastra i to w zależności kwadratowej. Oznacza to, że dwukrotne podniesienie rozdzielczości powoduje czterokrotny wzrost wielkości rastra. Zależności między wymiarem obrazu i rozdzielczością a wymiarem rastra są następujące: h H = * DPI 25,4 w W = * DPI 25,4 (2.8) gdzie W - szerokość rastra w pikselach, H - wysokość rastra w pikselach, DPI - rozdzielczość h - wysokość obrazu w [mm] w - szerokość obrazu w [mm] W charakterystykach skanerów można się spotkać z dwoma rodzajami rozdzielczości optyczną i interpolowaną. Rozdzielczość optyczna (zwana również fizyczną) oznacza rzeczywistą liczbę elementów światłoczułych na jednostkę długości. Rozdzielczość interpolowana (obliczeniowa) polega na programowym wstawianiu między piksele rzeczywiste dodatkowych pikseli i przypisywania im wartości uśrednionych wynikających z sąsiedztwa pikseli rzeczywistych. Należy jednak pamiętać, że interpolacja nie powoduje wprowadzenia nowych danych do obrazu, a jest tylko jego przetworzeniem. Oznacza to, że rozdzielczość optyczna np. 600 lub 1200 dpi, daje znacznie lepsze wyniki niż taka sama rozdzielczość interpolowana. 2.3.1. Kompresja danych rastrowych Zbiory rastrowe zapisywane w postaci bezpośredniej są zbiorami o znacznych rozmiarach. Są one tym większe im wyższa jest rozdzielczość przechowywanego w nich obrazu i im więcej bitów przeznaczonych jest na zapis pojedynczego piksela. Poniższa tabela zawiera przykładowe zestawienie wielkości rastrów dla oryginału o wymiarach 500x800mm zeskanowanego w rozdzielczości 254 dpi z wykorzystaniem odpowiednio 1, 4, 8, 16 i 24 bitów do zapisu pojedynczego piksela.
Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 35 H W B Liczba kolorów Wielkość pliku w MB 8000 5000 1 2 5 8000 5000 4 16 19 8000 5000 8 256 38 8000 5000 16 65536 76 8000 5000 24 16777216 114 Aby uniknąć operowania na bardzo dużych plikach, rozwinęły się formaty wykorzystujące kompresję danych. Różnią się one szybkością działania, współczynnikiem kompresji oraz uniwersalnością zastosowań do różnych typów obrazów. Odczytanie skompresowanego pliku możliwe jest po przeprowadzeniu procesu odwrotnego czyli dekompresji. Generalnie kompresje dzielą się na kompresje bezstratne i stratne. W pierwszym wypadku przy zapisie nie następują, żadne straty w stosunku do oryginału, w drugim natomiast w celu zmniejszenia wielkości zbiorów, stosuje się eliminację pewnych mniej ważnych dla ludzkiego elementów. Klasycznym przykładem takiej kompresji jest kompresja JPEG. Standardowo raster zapisywany jest wiersz po wierszu jak przedstawiono to na poniższym rysunku. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Rys. 2.25. Ilustracja zapisu rastra wiersz po wierszu Najczęściej stosowane algorytmy kompresji eliminują powtarzające się w rastrze ciągi bitów zapisując je w krótszej postaci. Klasycznym przykładem takiej kompresji jest kompresja RLE (ang. Run-Length Encoding) polegająca na zamianie ciągów złożonych z tych samych wartości w pary P(liczba wystąpień, wartość). (7,0); (3,0),(1,1),(3,0); (2,0),(2,1),(1,0),(1,1),(1,0); (3,0),(4,1) Rys. 2.26. Ilustracja kompresji RLE
Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 36 Krzywa przedstawiona na rysunku (2.25) powstała w sposób naturalny z połączenia środków poszczególnych pikseli w kolejności ich zapisu i obrazuje transformację przestrzeni dwuwymiarowej rastra w jednowymiarową przestrzeń pamięci. Krzywa taką bywa często nazywana - krzywą organizującą przestrzeń. Cechą charakterystyczną przedstawionej krzywej jest to, że przechodzi przez wszystkie piksele rastra. Jeśli za istotę organizacji przyjmiemy wymaganie, że dwa piksele znajdujące się blisko siebie w przestrzeni dwuwymiarowej mają z dużym prawdopodobieństwem być blisko siebie w utworzonym porządku jednowymiarowym, to przedstawiona na rysunku 2.25 krzywa nie daje najlepszych efektów. Aby uzyskać lepsze efekty należy wykorzystać krzywą Peano, której ilustrację z zastosowaniem porządku opracowanego przez Mortona przedstawiono na rysunku poniżej. 0 2 1 3 00 02 0 1 4 5 01 03 10 11 2 3 6 7 12 13 1 8 9 12 13 20 21 30 31 10 11 14 15 22 23 32 33 000 001 002 003 020 021 022 023 200 201 202 203 212 221 222 223 010 011 012 013 030 031 032 033 210 211 212 213 230 231 232 233 100 101 102 103 120 121 122 123 300 301 302 303 320 321 322 323 110 111 112 113 130 131 132 133 310 311 312 313 330 331 332 333 0 1 4 5 2 3 6 7 8 9 12 13 10 11 14 15 Rys. 2.27. Ilustracja krzywej Peano Innym podejściem do kompresji rastrów jest operowanie elementami powierzchniowymi o różnej wielkości zapisywanej w strukturze drzewa czwórkowego, co zilustrowano na poniższym rysunku.
Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 37 Rys. 2.28. Zapis rastra w strukturze drzewa czwórkowego W prezentowanej strukturze z każdego węzła wychodzą cztery rozgałęzienia, odpowiadające podziałowi danego elementu powierzchniowego na cztery części. Podział rozpoczyna się od obszaru całego rastra i jest kontynuowany przez kolejne coraz mniejsze elementy. Jak widać dla pewnych (jednolitych) obszarów rastra podział może być zakończony już na pierwszym podziale płaszczyzny bez utraty jakiejkolwiek informacji. Nie występuje więc potrzeba wyodrębniania dla tego obszaru kolejnych mniejszych elementów.