REPREZENTACJA OBRAZU KODOWANIE OBRAZU METRYKA SPOSOBY PRZEGLĄDU OBRAZU KOMPRESJA OBRAZU MODELOWANIE KOLORU

Podobne dokumenty
WYKŁAD 11. Kolor. fiolet, indygo, niebieski, zielony, żółty, pomarańczowy, czerwony

WYKŁAD 10. kodem pierwotnym krzywej jest ciąg par współrzędnych x, y kolejnych punktów krzywej: (x 1, y 1 ), (x 2, y 2 ),...

Pojęcie Barwy. Grafika Komputerowa modele kolorów. Terminologia BARWY W GRAFICE KOMPUTEROWEJ. Marek Pudełko

POB Odpowiedzi na pytania

Według raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j

Dane obrazowe. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

Grafika komputerowa. Dla DSI II

Teoria światła i barwy

MODELE KOLORÓW. Przygotował: Robert Bednarz

Do opisu kolorów używanych w grafice cyfrowej śluzą modele barw.

Marcin Wilczewski Politechnika Gdańska, 2013/14

INFORMATYKA WSTĘP DO GRAFIKI RASTROWEJ

0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do

Akwizycja obrazów. Zagadnienia wstępne

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania

Janusz Ganczarski CIE XYZ

Joint Photographic Experts Group

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG

GRAFIKA RASTROWA GRAFIKA RASTROWA

Fotometria i kolorymetria

dr inż. Piotr Odya dr inż. Piotr Suchomski

PODSTAWY BARWY, PIGMENTY CERAMICZNE

Założenia i obszar zastosowań. JPEG - algorytm kodowania obrazu. Geneza algorytmu KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

Fotometria i kolorymetria

Modele i przestrzenie koloru

Grafika na stronie www

Kurs grafiki komputerowej Lekcja 2. Barwa i kolor

Grafika komputerowa. Oko posiada pręciki (100 mln) dla detekcji składowych luminancji i 3 rodzaje czopków (9 mln) do detekcji koloru Żółty

Przetwarzanie obrazów wykład 1. Adam Wojciechowski

GRAFIKA RASTROWA. WYKŁAD 1 Wprowadzenie do grafiki rastrowej. Jacek Wiślicki Katedra Informatyki Stosowanej

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Obraz jako funkcja Przekształcenia geometryczne

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Przedmowa 11 Ważniejsze oznaczenia 14 Spis skrótów i akronimów 15 Wstęp 21 W.1. Obraz naturalny i cyfrowe przetwarzanie obrazów 21 W.2.

Gimp Grafika rastrowa (konwersatorium)

Plan wykładu. Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie. informatyka +

Operator rozciągania. Obliczyć obraz q i jego histogram dla p 1 =4, p 2 =8; Operator redukcji poziomów szarości

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 1 AiR III

Cyfrowe Przetwarzanie Obrazów. Karol Czapnik

Percepcja obrazu Podstawy grafiki komputerowej

Adam Korzeniewski p Katedra Systemów Multimedialnych

Podstawy grafiki komputerowej

WYKŁAD 14 PODSTAWY TEORII BARW. Plan wykładu: 1. Wrażenie widzenia barwy. Wrażenie widzenia barwy Modele liczbowe barw

Przetwarzanie obrazów Grafika komputerowa. dr inż. Marcin Wilczewski 2016/2017

Plan wykładu. Wprowadzenie Program graficzny GIMP Edycja i retusz zdjęć Podsumowanie. informatyka +

Podstawy Informatyki Wykład V

Python: JPEG. Zadanie. 1. Wczytanie obrazka

Kwantyzacja wektorowa. Kodowanie różnicowe.

Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 30

GRAFIKA. Rodzaje grafiki i odpowiadające im edytory

Transformaty. Kodowanie transformujace

Grafika rastrowa (bitmapa)-

Kolor w grafice komputerowej. Światło i barwa

Zygmunt Wróbel i Robert Koprowski. Praktyka przetwarzania obrazów w programie Matlab

PODSTAWY TEORII BARW

Klasyfikacja metod kompresji

Cyfrowe przetwarzanie i kompresja danych. dr inż.. Wojciech Zając

Laboratorium Grafiki Komputerowej Przekształcenia na modelach barw

ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM)

Przewodnik po soczewkach

Zamiana reprezentacji wektorowej na rastrową - rasteryzacja

Parametryzacja obrazu na potrzeby algorytmów decyzyjnych

Przekształcenia punktowe

AKWIZYCJA I PRZETWARZANIE WSTĘPNE OBRAZU

Proste metody przetwarzania obrazu

Animowana grafika 3D. Opracowanie: J. Kęsik.

Grafika 2D. Pojęcia podstawowe. opracowanie: Jacek Kęsik

Technologie Informacyjne

Klasyfikacja metod kompresji

1 LEKCJA. Definicja grafiki. Główne działy grafiki komputerowej. Programy graficzne: Grafika rastrowa. Grafika wektorowa. Grafika trójwymiarowa

BIBLIOTEKA PROGRAMU R - BIOPS. Narzędzia Informatyczne w Badaniach Naukowych Katarzyna Bernat

Grafika komputerowa. mgr inż. Remigiusz Pokrzywiński

Wykład II. Reprezentacja danych w technice cyfrowej. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Warstwa Rysunek bitmapowy Rysunek wektorowy

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

WYKŁAD 3. Przykłady zmian w obrazie po zastosowaniu Uniwersalnego Operatora Punktowego

Grafika Komputerowa Wykład 1. Wstęp do grafiki komputerowej Obraz rastrowy i wektorowy. mgr inż. Michał Chwesiuk 1/22

Wybrane metody kompresji obrazów

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk

Transformata Fouriera

Komputerowe obrazowanie medyczne

Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 9. Przetwarzanie sygnałów wizyjnych. Politechnika Świętokrzyska.

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

WYKŁAD 12. Analiza obrazu Wyznaczanie parametrów ruchu obiektów

Ćwiczenie 6. Transformacje skali szarości obrazów

Macierze. Rozdział Działania na macierzach

Podstawy grafiki komputerowej. Teoria obrazu.

Grafika Komputerowa Wykład 6. Teksturowanie. mgr inż. Michał Chwesiuk 1/23

Język JAVA podstawy. Wykład 5, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 4, strona 1. GOLOMBA I RICE'A

Luminancja jako jednostka udziału barwy składowej w mierzonej:

5. Rozwiązywanie układów równań liniowych

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 3 AiR III

Anna Barwaniec Justyna Rejek

Kodowanie transformujace. Kompresja danych. Tomasz Jurdziński. Wykład 11: Transformaty i JPEG

Photoshop. Podstawy budowy obrazu komputerowego

Transkrypt:

REPREZENTACJA OBRAZU KODOWANIE OBRAZU METRYKA SPOSOBY PRZEGLĄDU OBRAZU KOMPRESJA OBRAZU MODELOWANIE KOLORU WYKŁAD 05 Marek Doros

Przetwarzanie obrazów Wykład 05 2 Postacie obrazów na różnych etapach procesu przetwarzania

Przetwarzanie obrazów Wykład 05 3 Klasy obrazów Klasa 1 Obrazy o pełnej skali stopni jasności, typowe parametry: N=512, M=256 Reprezentacja rastrowa: np. tablica 512x512 jednobajtowych elementów (true color - 3 bajty NxN) Klasa 2 Obrazy binarne: tablica NxN np. 512x512 elementów jednobitowych (również reprezentacja rastrowa). Klasa 3 Krzywe dyskretne - zbiór punktów (pikseli) rastru prostokątnego z których każdy (oprócz punktów końcowych) posiada nie mniej niż 2 i nie więcej niż 3 sąsiadów odpowiednio skonfigurowanych. Punkty końcowe: 1-2 sąsiadów. Krzywe otwarte, krzywe zamknięte. Klasa 4 Punkty lub wieloboki. Punkty tak od siebie oddalone, że nie mogą być reprezentowane przez kod łańcuchowy. Reprezentacja: tablica współrzędnych punktów. Łączenie prostymi lub krzywymi o zadanych parametrach.

Przetwarzanie obrazów Wykład 05 4 Krzywa dyskretna Zbiór pikseli siatki prostokątnej (rastru prostokątnego) z których każdy (oprócz pikseli końcowych) posiada nie mniej niż 2 i nie więcej niż 3 sąsiadów odpowiednio skonfigurowanych (w sensie sąsiedztwa 8-mio lub 4-spójnego). Piksele końcowe: 1-2 sąsiadów.)

Przetwarzanie obrazów Wykład 05 5 Krzywe dzielimy na: otwarte, zamknięte. Kierunki Reprezentacja krzywych Ciąg par współrzędnych x, y kolejnych punktów krzywej: (x 1, y 1 ), (x 2, y 2 ),..., (x n, y n ), (0,5), (1,4),...,(7,0) (krzywa z przykładu) Kod łańcuchowy (chain code) o stałej długości (3 bity/punkt): (0,5) 001001000010001000...000 (0,5) - współrzędne punktu początkowego krzywej z przykładu 001 - kod kierunku 1 Długość kodu łańcuchowego o stałej długości nie zależy do kształtu krzywej (określonego zmianami kierunków pomiędzy kolejnymi pikselami krzywej).

Przetwarzanie obrazów Wykład 05 6 Różnicowy kod łańcuchowy (o zmiennej długości, średnio 2 bity / piksel, długość kodu zależy od kształtu krzywej). Przypisania: zmienna nachylenia 0 +1-1 +2-2 +3-3 +4 kod 0 01 011 0111 01111 011111 0111111 01111111 +1, +2, +3, 4 - zmiana nachylenia o 1,2,3,4 w kierunku dodatnim - 1, -2, -3, 4 - zmiana nachylenia o 1,2,3,4 w kierunku ujemnym Krzywa z przykładu (0,5) 001001101110110110011101111 Dla jednoznacznego opisu krzywej powyższy kod musi zawierać: (0,5) - współrzędne punktu początkowego krzywej z przykładu 001 - kod łańcuchowy 0 - różnicowy kod łańcuchowy

Przetwarzanie obrazów Wykład 05 7 Technika dyskretyzacji krzywych Schemat dyskretyzacji Freemana (w procesie akwizycji obrazu) Zasada: badanie każdego punktu przecięcia się krzywej z linią łączącą dwa kolejne węzły siatki (rastru). Wybór węzła rastru leżącego bliżej punktu przecięcia. Wybrany węzeł należy do pikseli tworzących krzywą dyskretną. Punkt niejednoznaczności (ambiguity point) - punkt przecięcia jednakowo odległy od obu rozważanych węzłów siatki (rastru). W tym przypadku wybór węzła do utworzenia krzywej dyskretnej następuje według dodatkowej reguły (np. prawy z dwóch węzłów tworzących odcinek poziomy lub górny z dwóch węzłów tworzących odcinek pionowy.

Przetwarzanie obrazów Wykład 05 8

Przetwarzanie obrazów Wykład 05 9 Tworzenie obrazów na podstawie ich reprezentacji Grafika wektorowa (tworzenie obrazów klas 3 i 4) Modyfikacja kształtu i - tego obiektu bez ingerencji w pozostałe sekwencje. Częstotliwość odtwarzania jest odwrotnie proporcjonalna do długości pętli. Zajętość pamięci zależy od rodzaju obiektów na obrazie. Grafika rastrowa - tworzenie obrazów wielo- lub dwupoziomowych (binarnych), czyli klasy 1 i 2. Modyfikacja kształtu obiektu ingeruje w postać innych obiektów.

Przetwarzanie obrazów Wykład 05 10 Rozwiązanie problemu Podział pamięci na strefy i tworzenie obrazu każdego obiektu w oddzielnej strefie. P 1, P 2, P 3, P 4 - dotyczą tych samych współrzędnych ekranu

Przetwarzanie obrazów Wykład 05 11 Przykład Obraz 16x16 pikseli, 256 poziomów jasności.

Przetwarzanie obrazów Wykład 05 12 Reprezentacja rastrowa Jeden piksel obrazu zajmuje jedną komórkę (jednobajtową) pamięci. Zawartość pamięci 16x16x1 bajt=256 bajtów. Na oddzielne przechowywanie zarówno obiektu A jak i obiektu B potrzeba 256 bajtów. Tablica jednowymiarowa: Obiekt A nr elementu: 1 2... 16 17 18 19 20 21 22 23... 256 wartość elementu: 0 0... 0 0 0 0 5 3 10 0... 0

Przetwarzanie obrazów Wykład 05 13 Reprezentacja wektorowa Jeden piksel obiektu - współrzędne x, y oraz poziom jasności z. Obraz - tablica elementów trójskładnikowych: Obiekt A (4,2,5), (5,2,3),..., (6,5,2) Zadanie Obliczyć zajętość pamięci (w bajtach) przez obiekty A i B w obrazie 256x256 przy dwóch rodzajach reprezentacji.

Przetwarzanie obrazów Wykład 05 14 Edytor obrazowy Program do wprowadzania i modyfikacji danych obrazowych (dla porównania: edytor tekstowy służy do wprowadzania i modyfikacji tekstu) Edytor punktowy Program do wprowadzania, modyfikacji i adresowania (wskazywania) punktów. Struktura danych dla edytora punktowego: Tablica dwuwymiarowa współrzędnych (x,y) punktów Połączona lista (łatwiejsza dla użytkownika) Elementy listy są czteroskładnikowe: x - współrzędna x, y - współrzędna y, p - adres poprzedniego elementu na liście n - adres następnego elementu na liście. Realizacja struktury - cztery tablice jednowymiarowe z indeksem tablicy służącym jako adres.

Przetwarzanie obrazów Wykład 05 15 Przykład (5,8,0,2) - element poprzedni nie istnieje (11,22,1,3) (14,18,2,0) - element następny nie istnieje. Wprowadzenie punktu (9,10) między pierwszym a drugim punktem daje następującą listę: (5,8,0,4); (11,22,4,3); (14,18,2,0); (9,10,1,2)

Przetwarzanie obrazów Wykład 05 16 Metryka Liczenie różnic pomiędzy obrazami 2 sposoby 1. Różnica pomiędzy dwoma wektorami reprezentującymi porównywane obrazy (metryka) 2. Różnica pomiędzy dwiema tablicami reprezentującymi porównywane obrazy (operacja jednopunktowa dwuargumentowa)

Przetwarzanie obrazów Wykład 05 17 Obraz jako wektor (punkt w przestrzeni n-wymiarowej): d [ d,..., d ] d D 1 n T n liczba pikseli obrazu, np. N 2 D przestrzeń obrazów Wartości odpowiednich składowych wektora zależą od sposobu przeglądu obrazu (np. 1,2) dwa sposoby przeglądu linia po linii, 3) krzywa Hilberta.

Przetwarzanie obrazów Wykład 05 18 Metryka odwzorowanie wszystkich wektorów : X X R spełniające dla 1, 2,... założenia (warunki): x X x, x 0 x x x, x x, x - tożsamość - symetria, x, x x, x x, x - warunek trójkąta. Gdzie: X - przestrzeń wektorów R * - zbiór liczb nieujemnych Zastosowanie praktyczne obliczanie różnic pomiędzy poszczególnymi obrazami

Przetwarzanie obrazów Wykład 05 19 Sposoby przeglądu obrazu 1. Linia po linii (wiersz po wierszu) 1-szy sposób Przykład N=4 2. Linia po linii (wiersz po wierszu) 2-gi sposób Przykład N=4

Przetwarzanie obrazów Wykład 05 20 1. Według krzywej Hilberta rzędu k Rekurencyjny algorytm generowania krzywych Hilberta. Z czterech krzywych rzędu k-1 budowana jest krzywa rzędu k. Przykład k=3 Krzywa Hilberta rzędu 3. Obraz o rozmiarach 8x8 (N=8) Uwaga Obraz o rozmiarach 4x8 (tzn. N1=4, N2=8) również można pokryć krzywą Hilberta (p. lewa lub prawa połowa powyższego obrazu)

Przetwarzanie obrazów Wykład 05 21 Metryka Euklidesowa ( x, x ) ( x x ) 1 n 1 2 Wady i zalety metryki Euklidesowej - odpowiada obiegowej definicji odległości - ignorowanie składowych o b. małych wymiarach, długie czasy obliczeń (pierwiastkowanie, podnoszenie do kwadratu) Uogólniona metryka Euklidesowa ( x, x ) x x 2 n 1 2 - mnożniki normalizujące

Przetwarzanie obrazów Wykład 05 22 Metryka uliczna (Manhattan, city block distance): 3 x, x x x n 1 Uogólniona metryka uliczna 4 n x, x x x 1 Metryka Czebyszewa (maksymalna) 5 x x x x, max 1 n Oznaczenia T x x x x T [ 1,...,... n ] x [ x,... x,... x n ] 1

Przetwarzanie obrazów Wykład 05 23 Przykład Obliczyć różnicę (stosując metrykę euklidesową) pomiędzy dwoma obrazami trzypikslowymi 1 T 1 1 2 1 3 1 2 1 2 2 2 3 3 d [ d, d, d ] [ 2, 3, 5], d [ d, d, d ] [ 1, 4, 5] T 3 1 2 1 2 2 i i i1 2 2 2 ( d, d ) ( d d ) ( 2 1) ( 3 4) ( 5 5) 2

Przetwarzanie obrazów Wykład 05 24 Obraz jako tablica Obliczanie wartości bezwzględnych różnic pomiędzy odpowiednimi pikselami dwóch obrazów [ c ij ]=[a ij -b ij ] [a ij ] [ b ij ] 0 12 142 255 14 11 9 253 1 6 40 254 3 5 39 254 24 0 20 255 11 1 19 255 30 2 10 240 18 2 11 256 a ij -b ij c ij = a ij -b ij 14 1 133 2 2 1 1 0 13 1 1 0 12 0 1 16 14 1 133 2 2 1 1 0 13 1 1 0 12 0 1 16

Przetwarzanie obrazów Wykład 05 25 KOMPRESJA OBRAZÓW Cele kompresji archiwizacja, przesyłanie. Stopień kompresji obrazu SK = KP KW SK - stopień kompresji obrazu. KP [bajt] - obszar pamięci zajmowany przez kod pierwotny obrazu. Kod pierwotny - reprezentacja rastrowa lub wektorowa. KW [bajt] - obszar pamięci zajmowany przez kod wynikowy obrazu. Rodzaje kompresji: - kompresja bezstratna (lossless compression) - kompresja stratna (lossy compression)

Przetwarzanie obrazów Wykład 05 26 Kompresja bezstratna (lossless compression) Własność x, x 0 x x ρ - wektor reprezentujący obraz pierwotny - wektor reprezentujący obraz odtworzony (zrekonstruowany) - wartość metryki Wybrane metody kompresji bezstratnej obrazów rastrowych: Kompresja obrazów z obszarami o jednolitej jasności Kompresja obrazów z obszarami o niejednolitej jasności

Przetwarzanie obrazów Wykład 5 27 Kompresja obrazów z obszarami o jednolitej jasności Kodowanie ciągów identycznych symboli ciąg identycznych symboli - para zawiera 1 symbol i liczbę jego powtórzeń Przykład: 7,7,8,9,10,10,10,10,9,9,9,8,7,7,7 7(2), 8(1), 9(1), 10(4), 9(3), 8(1), 7(3). Uwaga: dla obrazów o dużych obszarach o jednolitej jasności przegląd według krzywej Hilberta daje z reguły dłuższe ciągi identycznych symboli niż w przypadku przeglądu linia po linii Praktyczna realizacja metody kodowania ciągów identycznych symboli: formaty obrazowe: *.PCX, *.PIC

Przetwarzanie obrazów Wykład 05 28 Kodowanie drzewiaste odwzorowanie obrazu w drzewo (szczególny przypadek grafu), czyli odwzorowanie piksli lub podzbiorów piksli w węzły (wierzchołki) drzewa. Przegląd siatki dyskretnej obrazu realizowany poprzez przegląd drzewa będącego odwzorowaniem tego obrazu. Powszechnie stosowane są drzewa czwórkowe i drzewa binarne Terminologia z zakresu teorii grafów Graf - zbiór punktów lub wierzchołków (węzłów) połączonych liniami lub gałęziami Droga cykliczna - droga, której początek i koniec pokrywają się. Graf jest spójny istnieje droga między dowolną parą wierzchołków. Stopień wierzchołka - liczba gałęzi spotykających się w nim. Graf zorientowany - część lub wszystkie gałęzie są ukierunkowane. Stopień zewnętrzny lub wewnętrzny wierzchołka - liczba gałęzi skierowanych od i do wierzchołka

Przetwarzanie obrazów Wykład 05 29 Drzewo graf spójny bez dróg cyklicznych; poziomy: górne, dolne; stopień wierzchołka: górny i dolny Podgraf grafu G - graf zawierający część lub wszystkie wierzchołki G oraz część lub wszystkie jego gałęzie i nie ma innych wierzchołków lub gałęzi. Drzewo rozpinające grafu spójnego G - podgraf G zawierający wszystkie wierzchołki G oraz liczbę gałęzi wystarczającą aby był spójny bez dróg cyklicznych.

Przetwarzanie obrazów Wykład 05 30 Odpowiedniki w odwzorowaniu obraz - graf Siatka dyskretna - graf Wierzchołki grafu - elementy obrazu. Struktura do przechowywania wierzchołków - stos. Gałęzie - łączą wierzchołki odpowiadające sąsiednim elementom. Dane: współrzędne x, y oraz ich jasność. Problem: znalezienie wierzchołków przyległych do danego wierzchołka. Typowy algorytm przeglądania grafu odpowiada algorytmowi przeglądania obrazu Manipulacja stosem. Usuwanie węzłów (manipulowanie kolejką).

Przetwarzanie obrazów Wykład 05 31 Piramidy albo drzewa czwórkowe (odwzorowanie obrazu w drzewo czwórkowe) Obraz - postać macierzy kwadratowej A o wymiarach 2 n x 2 n. Powtarzany rekursywnie n razy proces podziału A na 4 macierze kwadratowe aż do osiągnięcia poziomu pojedynczego elementu obrazu. Przedstawienie podziału w postaci drzewa, którego wierzchołki (węzły) odpowiadają kwadratom. Wszystkie wierzchołki oprócz liści (wierzchołków stopnia 1) są stopnia dolnego 4, stąd: drzewo czwórkowe.

Przetwarzanie obrazów Wykład 05 32 Długość etykiety pojedynczego elementu wynosi n (np. dla n=3 obraz 8x8) Poziom k zawiera 4 k kwadratów. Stąd liczba wierzchołków drzewa: n N= 4k k= 0 n1 4 1 4 3 3 4 n tzn. ok. 1/3 więcej wierzchołków niż elementów. Tak więc w przypadku, gdy w odwzorowaniu obrazu w drzewo jeden wierzchołek drzewa odpowiada jednemu pikslowi, tzn. gdy nie ma obszarów (złożonych z więcej niż jednego piksla) o takiej samej jasności, występuje ekspansja obrazu przeciwieństwo kompresji.

Przetwarzanie obrazów Wykład 05 33 System adresowania kwadratów Typowe algorytmy Algorytm tworzenia drzewa czwórkowego z obrazu przeglądanego wiersz po wierszu Rekonstrukcja obrazu na podstawie drzewa czwórkowego. Wyświetlanie zgrubne np. w czasie T c /2, gdzie T c - całkowity czas odtworzenia obrazu. W reprezentacji macierzowej w czasie T c /2 wyświetli się połowa obrazu. Kompresja obrazu za pomocą drzewa czwórkowego (przy dostatecznie dużych obszarach o jednolitej jasności).

Przetwarzanie obrazów Wykład 05 34 Drzewa binarne Zaleta mniejsza zmiana rozdzielczości przy zmianie poziomu (dwukrotna) niż w przypadku drzewa czwórkowego (czterokrotna). Jeżeli przy drzewach czwórkowych każda transmisja czterokrotnie zwiększa rozdzielczość, to dla drzew binarnych jedynie ją podwaja. Stąd, przy tej samej całkowitej ilości danych w obydwu metodach, dla drzew binarnych powstaje wcześniej obraz bardziej odpowiadający oryginałowi.

Przetwarzanie obrazów Wykład 05 35 Kompresja obrazów z obszarami o niejednolitej jasności Kod Huffmana - kod o zmiennej długości słowa. Sposób postępowania: Przypisanie każdemu poziomowi jasności częstości występowania pikseli o tym poziomie jasności (utworzenie histogramu). Wyszukanie 2 poziomów o najmniejszej częstości występowania i połączenie w jeden o częstości występowania równej sumie tych poziomów. Schemat łączenia - drzewo Huffmana.

Przetwarzanie obrazów Wykład 05 36 Histogram n j - liczba piksli o jasności (poziomie jasności, wartości) p j, N 2 - liczba piksli obrazu p - poziom jasności Praktyczna realizacja kodu Huffmana - format obrazowy *.TGA

Przetwarzanie obrazów Wykład 05 37 Wada kodu Huffmana konieczność przyłączania do zakodowanego obrazu biblioteki użytych kodów (odpowiadających zadanym poziomom jasności). Rozmiar biblioteki może przewyższyć redukcję rozmiaru obrazu. Ominięcie problemu: Sposób 1 Metoda adaptacyjna - wykorzystanie do kodowania każdego piksla biblioteki zbudowanej na podstawie częstości wystąpień wszystkich już zakodowanych pikseli; program dekodujący zna te piksle, stąd nie ma potrzeby przyłączania tablicy przekodowań. Wada - duży koszt obliczeń - wyznaczanie kodów Huffmana NxN razy, tzn. złożoność obliczeniowa wynosi O(N 2 ). Sposób 2 Metoda wykorzystania standardowej tablicy przekodowań (tylko w przypadkach, gdy charakter kodowanych danych można dobrze przewidzieć). Krótszy proces kodowania (jednokrotny przegląd obrazu - tylko w trakcie rzeczywistego kodowania). Pierwszy krok - polegający na przeglądzie obrazu dla znalezienia częstości występowania poszczególnych poziomów jasności (histogram) zostaje pominięty.

Przetwarzanie obrazów Wykład 05 38 Uwaga: Stopień kompresji wzrasta, gdy nierównomierność częstości n j wystąpień poszczególnych poziomów jasności p j wzrasta. Zwiększenie nierównomierności częstości wystąpień: zastąpienie poziomów jasności piksli f m,n odpowiednimi wyrażeniami różnicowymi (1) m,n f m,n f m,n1 (2) m,n f m,n f ( f f ) 1 m-1,n m,n1 m-1,n- W przypadku (2) nastąpiło zwiększenie nierównomierności częstości wystąpień w porównaniu z przypadkiem (1) m n f f m-1,n-1 m,n- 1 fm- 1,n fm,n Położenie pikseli

Przetwarzanie obrazów Wykład 05 39 Metody słownikowe Kodowanie ciągów symboli (pikseli) za pomocą odwołań do słownika zawierającego takie ciągi. Stopień kompresji (SK) rośnie, gdy długość ciągu pikseli możliwych do zastąpienia indeksem do słownika rośnie. Podział metod słownikowych: statyczne (słownik nie zmienia się w trakcie kodowania), adaptacyjne (słownik zmienia się w trakcie kodowania)

Przetwarzanie obrazów Wykład 05 40 Przykład metody statycznej słownik zawiera wszystkie możliwe ciągi o długościach równych liczbie pikseli w całym obrazie wtedy: L=2 B(NxN) gdzie: L - liczba możliwych ciągów (tzn. liczba indeksów słownika), B - liczba bitów określających wartość piksela NxN - liczba pikseli w całym obrazie Wtedy: KP = B(NxN), KW = L, stąd SK < 1, (ekspansja) (np. dla B=8, N=512: L = 2 8(512x512) tzn. ok. 10 600000 >> 8 (512x512), tzn. SK<<1) Wniosek: należy stosować ciągi o mniejszej liczbie wyrazów. Problem: Dla obrazu o parametrach : B=8, N=512 znaleźć taką wartość n<nxn, dla której SK=1

Przetwarzanie obrazów Wykład 05 41 Kompresja stratna (lossy compression) Własność: x, x 0 x x - wektor reprezentujący obraz pierwotny - wektor reprezentujący obraz odtworzony (zrekonstruowany) Kompresja stratna - uzyskiwany jest większy stopień kompresji (SK) niż przy stosowaniu kompresji bezstratnej (lossless compression). Wybrane metody kompresji stratnej obrazów rastrowych kodowanie różnic, kodowanie blokowe

Przetwarzanie obrazów Wykład 05 42 Kodowanie różnic f f 1 m,n m,n m,n gdzie: f m,n - poziom jasności piksela o współrzędnych m,n, f m,n-1 - poziom jasności piksela (kolejnego) o współrzędnych m,n-1. Położenie pikseli f m-1,n-1 fm- 1,n f m,n-1 fm,n Przykład: Obraz pierwotny : L = 255 (M = 256) kodowanie wartości pikseli: l = 0,1,2,3,...,255; zajętość pamięci: 8 bitów/piksel, kodowanie różnic pomiędzy wartościami kolejnych pikseli: m,n 255, 254,..., 0,..., 254, 255 zajętość pamięci: 9 bitów /piksel.

Przetwarzanie obrazów Wykład 05 43 Histogram różnic ε m,n pomiędzy wartościami (poziomami jasności) kolejnych pikseli Histogram różnic ma charakter krzywej Gaussa z maksimum w okolicy zera.

Przetwarzanie obrazów Wykład 05 44 Realizacja kompresji: zakodowanie najczęściej występujących różnic. Histogram różnic z zaznaczonym obszarem najczęściej występujących różnic Kryteria wyboru obszaru: wymagania na wielkość stopnia kompresji (SK), wymagania na dokładność rekonstrukcji (określoną wielkością ρ ) KP = 9, KW = 4 SK = KP/KW = 9/4 = 2,25 m,n 7, 6,..., 7, 8 Obraz zakodowany - 16 symboli zamiast 512 Niepożądany efekt: zależnie od rodzaju obrazu - większe lub mniejsze rozmywanie (blurring) ostrych krawędzi.

Przetwarzanie obrazów Wykład 05 45 Kodowanie blokowe Podział obrazu na jednakowe bloki, najczęściej 4x4 piksele. Obliczenie dla każdego bloku średniej arytmetycznej jasności. Podział pikseli na dwie grupy: a) o jasności większej lub równej jasności średniej, b) mniejszej niż jasność średnia. Obliczenie nowej jasności średniej dla każdej z grup (wartość górna dla (a) i wartość dolna dla (b)). Przypisanie wszystkim pikselom danej grupy obliczonej jasności średniej (górnej lub dolnej), stąd blok zostaje zakodowany jako mapa bitowa określająca podział na grupy, plus dwie wartości jasności. 0 10,125 13 Wartość górna= 12,625 13 Wartość dolna = 7,625 8

Przetwarzanie obrazów Wykład 05 46 Przykład Obraz o 256 poziomach jasności, bloki o wymiarach 4x4 piksele. Obszar pamięci zajmowany przez blok przed kompresją: KP = 4x4x8 = 128 bitów Obszar pamięci zajmowany przez blok po kompresji: KW = 4x4x1 + 2x8=32 bity, gdzie: 4x4x1 - obszar pamięci zajmowany przez mapę bitową, 2x8 - obszar pamięci zajmowany przez dwie wartości jasności stąd: SK = KP/KW = 4 Niepożądany efekt: zwiększenie rozmiaru bloku powoduje coraz wyraźniejsze ukazywanie się siatki podziału na bloki.

Przetwarzanie obrazów Wykład 05 47 Format JPEG - Odpowiada kompresji stratnej - Oparty na dyskretnej transformacie kosinusowej (DCT) - Wraz ze wzrostem stopnia kompresji (SK) coraz bardziej widoczny jest podział na bloki w obrazie zrekonstruowanym

Przetwarzanie obrazów Wykład 05 48 Kolejność działań: Konwersja obrazu kanałów (RGB) na jasność (luminancję) i 2 kanały barwy (chrominancje). Odrzucenie części pikseli kanałów barwy, podział kanałów na bloki 8 8 pikseli. Na blokach wykonywana jest dyskretna transformata kosinusowa (DCT). Zastąpienie średnich wartości bloków przez różnice wobec wartości poprzedniej (DPCM). Poprawia to w pewnym stopniu współczynnik kompresji. Kwantyzacja, czyli zastąpienie danych zmiennoprzecinkowych przez liczby całkowite. Użyta transformata powoduje efekty blokowe w przypadku mocno skompresowanych obrazów. Innowacyjność algorytmu JPEG : możliwość kontroli stopnia kompresji w jej trakcie (p. program Corel Photo Paint X4)

Przetwarzanie obrazów Wykład 05 49 Przykład Obraz Jakość Rozmiar (bajty) Współcz ynnik kompresj i Komenta rz Pełna Niezauwa jakość (Q = 100) 83,261 2,6:1 żalnie małe artefakty Niska jakość (Q = 10) 4,787 46:1 Duże straty rozciągło ści tonalnej; artefakty na krawędzi ach obiektów

Przetwarzanie obrazów Wykład 05 50 Kompresja krzywych dyskretnych SK = KP KW SK - stopień kompresji krzywej. KP [bajt] - obszar pamięci zajmowany przez kod pierwotny krzywej. KW [bajt] - obszar pamięci zajmowany przez kod wynikowy krzywej Rodzaje kompresji krzywych dyskretnych: - kompresja bezstratna (lossless compression) - kompresja stratna (lossy compression)

Przetwarzanie obrazów Wykład 05 51 Kompresja bezstratna krzywych dyskretnych (lossless compression) Kod pierwotny KP: ciąg par współrzędnych x, y kolejnych punktów krzywej: (x 1, y 1 ), (x 2, y 2 ),..., (x n, y n ) Kod wynikowy KW: -kod łańcuchowy o stałej długości (chain code), lub - różnicowy kod łańcuchowy o zmiennej długości (differential chain code).

Przetwarzanie obrazów Wykład 05 52 Kompresja stratna (lossy) krzywych dyskretnych Metoda: Interpolacja krzywych dyskretnych odcinkami linii prostych dyskretnych Krzywe dyskretne: - krzywa pierwotna (interpolowana), - krzywa odtworzona (zdekompresowana, interpolująca) --------- - jest to zbiór kolejnych odcinków linii prostej dyskretnej S 1 -S 2, S 2 -S 3,...,S 9 -S 10. S 1,..., S 10 - węzły interpolacji KP - obszar pamięci zajmowany przez ciąg par współrzędnych x, y kolejnych punktów krzywej pierwotnej: (x 1, y 1 ), (x 2, y 2 ),..., (x N, y N ), KW - obszar pamięci zajmowany przez ciąg par współrzędnych x, y kolejnych węzłów interpolacji: (x S1,y S1 ), (x S2, y S2 ),...,(x Sn,y Sn ).

Przetwarzanie obrazów Wykład 05 53 Modelowanie koloru Kolor Światło widzialne fiolet, indygo, niebieski, zielony, żółty, pomarańczowy, czerwony ~400nm ~700nm Rozróżnialność barw (przeciętna): 150 czystych barw Wrażenie koloru-trzy czynniki: barwa, jasność, nasycenie

Przetwarzanie obrazów Wykład 05 54 Barwa Fizycznie: długość fali Subiektywnie: to co odróżnia zieleń od błękitu a jest wspólne dla różnych odcieni czerwonego. Jasność stopień podobieństwa do barwy białej (dla odcieni jasnych) lub czarnej (dla odcieni ciemnych). Nasycenie czystość barwy np. stopień zbliżenia do barw zasadniczych występujących w widmie słonecznym: czerwona, zielona, niebieska, żółta (RGBY). Rozróżnialność barw (uwzględniając jasności) ok. 400000 kolorów (przy porównywaniu). Z pamięci: kilkadziesiąt barw. Subiektywna ocena barw obrazu na monitorze przy różnym oświetleniu pomieszczenia.

Przetwarzanie obrazów Wykład 05 55 Komputerowe modelowanie koloru Cel otrzymanie obiektywnych, jednoznacznych charakterystyk barw. Rozkład energii światła z dominującą długością fali: e d - poziom składowej dominującej e b - wypadkowy poziom wszystkich pozostałych składowych dających światło białe

Przetwarzanie obrazów Wykład 05 56 Nasycenie rośnie gdy e d /e b rośnie e d = e b - nasycenie zerowe e b = 0 - nasycenie 100% Światło białe: np.: R:G:B = 26:66:8 Barwy dopełniające: trójki lub pary barw dających światło białe np.: czerwono zielono niebieska RGB addytywne żółto niebieska CMY subtraktywne Barwy podstawowe - Barwy, którymi opisywane są inne Dowolna, skończona liczba barw podstawowych nie wystarcza do otrzymania wszystkich barw z widmowego spektrum (porównaj diagram CIE).

Przetwarzanie obrazów Wykład 05 57 Standard barw podstawowych Standard CIE 1931r. (Międzynarodowa Komisja Oświetleniowa). Standardowe barwy podstawowe nie odpowiadają żadnej rzeczywistej barwie, za to dowolną widzialną barwę daje się wyrazić jako ich średnią ważoną. A,B,C - ilości poszczególnych barw podstawowych CIE dających w sumie pewną barwę. Wielkości a A A B C ; b A B B C ; c C A B C są to współrzędne trójchromatyczne tej barwy. Widać, że zawsze: a + b + c = 1 tzn. dowolne dwie współrzędne wystarczą do określenia barwy.

Przetwarzanie obrazów Wykład 05 58 Diagram chromatyczności CIE wykres współrzędnych a i b wszystkich barw widzialnych; obszar D - barwa biała

Przetwarzanie obrazów Wykład 05 59 Standard CIE - operacja na barwach Mieszanie (dodawanie) dwóch barw K 1 i K 2 Dominująca długośći fali i nasycenie koloru. S - domin. dług. fali barwy K Nasycenie określone ilorazem: KD DS

Przetwarzanie obrazów Wykład 05 60 Model RGB Opis piksela: 3 bajty 16777216 barw 3 bity 2 3 = 8 barw 1 piksel na ekranie monitora składa się fizycznie z 3 elementów (RGB)

Przetwarzanie obrazów Wykład 05 61 Barwy podstawowe R, G, B (red green blue) - odpowiadają sprzętowym (w postaci 3 - elementowej) sposobom generowania kolorowych obrazów na monitorze rastrowym. Wszystkim możliwym do uzyskania barwom w modelu RGB odpowiadają punkty sześcianu jednostkowego rozpiętego na osiach barw podstawowych Wierzchołki przeciwległe odpowiednio do R, G, B - barwy dopełniające Przekątna (0, 0, 0) (1, 1, 1) odpowiada różnym poziomom szarości (światło białe). Sześcian RGB

Przetwarzanie obrazów Wykład 05 62 Barwy addytywne Model RGB - opis addytywnego procesu otrzymywania barw w wyniku dodawania (mieszania) w różnych proporcjach trzech barw podstawowych.

Przetwarzanie obrazów Wykład 05 63 Model CMY C - cyan (zielono-niebieski), M - magenta (karmazynowy), Y - yellow (żółty) (są to dopełnienia R, G, B). CMY są podstawowymi barwami subtraktywnymi, ponieważ usuwają poprzednie podstawowe barwy ze źródła białego. Np. przedmiot pokryty żółtą farbą pochłania składowe światła słonecznego o długościach dopowiadających barwie niebieskiej. Model CMY jest subtraktywny i służy do określenia kolorów rysunków na drukarkach i ploterach. W praktyce: Maksymalne (równe 1) składowe barw podstawowych nie absorbują wszystkich długości widzialnych fal. Dlatego, używana jest dodatkowo czarna farba (dodatkowy pojemnik w drukarce atramentowej)

Przetwarzanie obrazów Wykład 05 64 Barwy subtraktywne

Przetwarzanie obrazów Wykład 05 65 Model HSV H - hue (barwa), S - saturation (nasycenie), V - value (wartość) kąt obrotu wokół osi V = 0 0 R = 120 0 G = 240 0 B S: odległość od osi punkty: na osi V: S=0 na ścianach: S=1 intensywność barwy: Minimalna: V:0 - na wierzchołku ostrosłupa; Maksymalna: V=1 - punkty podstawy ostrosłupa

Przetwarzanie obrazów Wykład 05 66 MODEL HSV POZWALA NA ŁATWE UTWORZENIE WYMAGANEJ BARWY podanie przy V=S=1 -ściemnianie (zmniejszanie V) i/lub rozjaśnianie (zmniejszanie S) Do wyświetlenia na monitorze barw zdefiniowanych w HSV potrzebne są współrzędne RGB Dlatego stosuje się: Algorytm transformacji (przekształcenia) modelu HSV na model RGB

Przetwarzanie obrazów Wykład 05 67 Algorytm transformacji (przekształcenia) modelu HSV na model RGB Model RGB oglądany wzdłuż przekątnej od barwy białej do czarnej Podstawa ostrosłupa modelu HSV oglądana z góry

Przetwarzanie obrazów Wykład 05 68 Algorytm dane: h - kąt z przedziału [0 0, 360 0 ] s,v, z przedziału [0, 1] oblicz: h h 60 i floorh : {największa liczba całkowita h} f h i 1 ; 1 ; 1 1- t v s u v s f w v s f jeśli i 0 r = v; g = w; b = t w przeciwnym razie jeśli r = t; g = u; b = v i = 3 to w przeciwnym razie jeśli r = u; g = v; b = t i = 1 to w przeciwnym razie jeśli r = v; g = t; b = u i = 4 to w przeciwnym razie jeśli i = 2 r = t; g = v; b = w to

Przetwarzanie obrazów Wykład 05 69 Techniki obrazowania poziomów jasności i kolorów Monitor o wielu poziomach szarości - jasność pojedynczego (fizycznego) piksla odpowiada jasności obliczonej. Monitory (tanie) o niewystarczającej liczbie poziomów szarości zamiast pojedynczych piksli - zastosowania wzorców n n piksli daje to n 2 +1 poziomów jasności dla monitora o 2 poziomach jasności; 0 - piksel zgaszony, 1 - piksel zapalony. Przykład 1 np.: n n = 3 3: wtedy 3 2 +1 = 10 poziomów Wada: Gorsza rozdzielczość obrazu (ale nie fizyczna ekranu monitora)

Przetwarzanie obrazów Wykład 05 70 Przykład 2 Model RGB: dla R, G, B przyjmujących 0, 1 (8 barw) wzorzec 2 2 piksle daje 125 barw Efekt liniowej zmiany jasności wzorców: wrażenie mniejszych zróżnicowań części ciemniejszych obrazów niż części jaśniejszych. Wzrok ludzki reaguje w sposób liniowy na przyrosty ilorazu różnicy między kolejnymi poziomami jasności i poziomem niższym a nie na różnice bezwzględne.

Przetwarzanie obrazów Wykład 05 71 Dlatego poziomy jasności I k powinny mieć rozkład logarytmiczny (stały stosunek następnego poziomu do poprzedniego) tzn: I k 1 I k const. Problem: jak wygląda w tym przypadku sposób nadawania wartości "1" kolejnym pikselom wzorców z podanych przykładów. Podać kilka elementów wzorca dla jednego i drugiego przykładu. Nazwa stosowanej techniki: technika roztrząsania (dithering)

Przetwarzanie obrazów Wykład 05 72 Przykłady modeli koloru

Przetwarzanie obrazów Wykład 05 73 CMY (205, 55, 205) CMYK (59, 0, 59, 22)

Przetwarzanie obrazów Wykład 05 74 Inne przykłady modeli koloru 1. Program Corel PhotoPaint (aktywacja paska narzędziowego: Tools, Customization, a następnie przy otworzonym pliku obrazowym: Edit, Fill, Edit, Options, Color Viewers) 2. Program \Programy\barwy (serwer Oceanic) 3. Modele kolorów - opisy i wzory: http://en.wikipedia.org/wiki/color_model 4. Dithering: http://pl.wikipedia.org/wiki/dithering_(grafika_komputerowa)

Przetwarzanie obrazów Wykład 05 75 MATERIAŁ DO WYKŁADU I ĆWICZEŃ LABORATORYJNYCH: Wykład Materiał podstawowy: M. Doros, Przetwarzanie obrazów, Skrypt WSISiZ, (Rozdz.5.1, 5.2, 5.4, 5.5, 7.4) Materiał uzupełniający: K.R.Castleman: Digital image processing, Prentice Hall International, Inc. 1998 (Rozdział 17) Ćwiczenia Laboratoryjne Materiał podstawowy: M.Doros, A. Korzyńska, M.Przytulska, H.Goszczyńska: Przetwarzanie Obrazów, ćwiczenia laboratoryjne, Skrypt WSISiZ, (Rozdz.10, 11)