Inżynieria obrazów cyfrowych. Ćwiczenie 3. Wybrane modele kolorów i ich zastosowania

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

Teoria światła i barwy

MODELE KOLORÓW. Przygotował: Robert Bednarz

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

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

Janusz Ganczarski CIE XYZ

PODSTAWY TEORII BARW

Techniki wizualizacji. Ćwiczenie 2. Obraz cyfrowy w komputerze

Kurs grafiki komputerowej Lekcja 2. Barwa i kolor

Techniki wizualizacji. Ćwiczenie 4. Podstawowe algorytmy przetwarzania obrazów

Grafika komputerowa. Dla DSI II

Inżynieria obrazów cyfrowych. Ćwiczenie 5. Kompresja JPEG

Akwizycja obrazów. Zagadnienia wstępne

Inżynieria obrazów cyfrowych. Ćwiczenie 1. Środowisko MATLAB + Image Processing Toolbox - wprowadzenie

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

Komunikacja Człowiek-Komputer

GRAFIKA. Rodzaje grafiki i odpowiadające im edytory

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

PODSTAWY BARWY, PIGMENTY CERAMICZNE

Utworzenie pliku. Dowiesz się:

Inżynieria obrazów cyfrowych. Ćwiczenie 7. GIMP zarządzanie kolorem, tekst na obrazie

Grafika Komputerowa Wykład 2. Przetwarzanie obrazów. mgr inż. Michał Chwesiuk 1/38

Podstawy MATLABA, cd.

Zapisywanie algorytmów w języku programowania

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

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

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

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Kompresja obrazów w statycznych - algorytm JPEG

Kompresja sekwencji obrazów

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

KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

Laboratorium Grafiki Komputerowej Przekształcenia na modelach barw

Zadania domowe. Ćwiczenie 2. Rysowanie obiektów 2-D przy pomocy tworów pierwotnych biblioteki graficznej OpenGL

Marcin Wilczewski Politechnika Gdańska, 2013/14

Programowanie i techniki algorytmiczne

Kompresja sekwencji obrazów - algorytm MPEG-2

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

Adam Korzeniewski p Katedra Systemów Multimedialnych

Grafika rastrowa (bitmapa)-

Programowanie w języku Python. Grażyna Koba

Podstawy grafiki komputerowej

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

Krótki kurs obsługi środowiska programistycznego Turbo Pascal z 12 Opracował Jan T. Biernat. Wstęp

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Przestrzenie barw. 1. Model RGB

Laboratorium Przetwarzania Sygnałów

Bramki logiczne Instrukcja do ćwiczeń laboratoryjnych

3. Macierze i Układy Równań Liniowych

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Inwerter logiczny. Ilustracja 1: Układ do symulacji inwertera (Inverter.sch)

Dostosowuje wygląd kolorów na wydruku. Uwagi:

Grafika na stronie www

IR II. 12. Oznaczanie chloroformu w tetrachloroetylenie metodą spektrofotometrii w podczerwieni

Microsoft Small Basic

Scenariusz lekcji Ozobot w klasie: Tabliczka mnożenia

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

Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa. Diagnostyka i niezawodność robotów

Techniki wizualizacji. Ćwiczenie 10. System POV-ray tworzenie animacji

Temat 20. Techniki algorytmiczne

0 + 0 = 0, = 1, = 1, = 0.

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

TEORIA BARW (elementy) 1. Podstawowe wiadomości o barwach

Systemy i Sieci Telekomunikacyjne laboratorium. Modulacja amplitudy

Zajęcia nr. 3 notatki

Materiały dla studentów pierwszego semestru studiów podyplomowych Grafika komputerowa i techniki multimedialne rok akademicki 2011/2012 semestr zimowy

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

Informatyka I: Instrukcja 4.2

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

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

Temat 5. Programowanie w języku Logo

Niezawodność diagnostyka systemów laboratorium

Percepcja obrazu Podstawy grafiki komputerowej

Jakość koloru. Menu Jakość. Strona 1 z 7

Komunikacja Człowiek-Komputer

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

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

KONSPEKT FUNKCJE cz. 1.

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

INFORMATYKA WSTĘP DO GRAFIKI RASTROWEJ

Podstawy grafiki komputerowej. Teoria obrazu.

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

Edytor tekstu OpenOffice Writer Podstawy

Grenlandia się topi badanie rozkładu kątów pomiędzy strumykami na lądolodzie na podstawie analizy obrazu

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

Tematy lekcji informatyki klasa 4a styczeń 2013

Dodawanie grafiki i obiektów

Laboratorium Cyfrowego Przetwarzania Obrazów

1.2 Logo Sonel podstawowe załoŝenia

Niezawodność i diagnostyka systemów cyfrowych projekt 2015

Część II Wyświetlanie obrazów

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia

Diagnostyka obrazowa

Kl 7-8 Szkoła Podstawowa

Simba 3D LOGO. Cele zajęć: - Poznanie zasad i sposobów tworzenia procedur z parametrami. - Poznanie zasad wywoływania procedur z parametrami.

Tworzenie prezentacji w MS PowerPoint

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

Modelowanie Systemów Dynamicznych Studia zaoczne, Automatyka i Robotyka, rok II. Podstawy MATLABA, cz2.

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

Transkrypt:

Doc. dr inż. Jacek Jarnicki Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej jacek.jarnicki@pwr.wroc.pl Inżynieria obrazów cyfrowych Ćwiczenie 3 Wybrane modele kolorów i ich zastosowania Celem ćwiczenia jest zrozumienie i poznanie zastosowań praktycznych niektórych modeli kolorów. Spośród wielu znanych modeli opracowanych dla specyficznych zastosowań zwrócono uwagę na dwie grupy modeli. Pierwsza z nich to modele, które mają zastosowanie w procesie wyświetlania barw o znanym opisie liczbowym na monitorach oraz do wyrażania przy pomocy liczb w jakiś sposób wyobrażanych sobie barw. Druga grupa to modele opisujące obrazy barwne w kategoriach luminancja-chrominancja. Opisy liczbowe barw stosowane w modelach luminancja- chrominancja wywodzą się z podstawowego dla teorii barw modelu CIE-XYZ i mają fundamentalne znaczenie w algorytmach kompresji obrazów barwnych oraz telewizji analogowej i cyfrowej. Zaproponowane w ćwiczeniu przykłady dotyczyły będą właśnie tych dziedzin. Rozważane trzy modele barw: RB, HSV, Model luminancja chrominancja, 1. Model RB Model RB służy głównie do opisu procesu wyświetlania obrazu barwnego na monitorze. Obraz na monitorze niezależnie od tego czy jest to monitor CRT, LCD czy plazmowy powstaje jako wynik kombinacji efektów procesów świecenia bardzo małych punktów, emitujący światło w trzech kolorach podstawowych, czerwonym, zielonym i niebieskim. W procesie wyświetlania obrazu zachodzi, więc sumowanie barw i w związku z tym model ten nosi często nazwę modelu addytywnego. Najczęściej model RB przedstawia się w postaci sześcianu jednostkowego o krawędziach położonych na trzech osiach układu współrzędnych prostokątnych (Rys. 1.), które reprezentują trzy barwy podstawowe. W modelu RB barwę definiuje się, więc jak przy pomocy trójki liczb (r, g, b), przy czym r, g, b [0, 1].

(0, 1, 0) R B (1, 0, 0) (0, 0, 1) Model ma kilka istotnych własności: Rys. 1. Model RB przedstawiony jako sześcian przekątna sześcianu biegnąca od punktu [0, 0, 0] do punktu [1, 1, 1] reprezentuje tak zwaną oś szarości zwierającą ciągłą skalę stopni szarości od czarnego [0, 0, 0] do białego [1, 1, 1], barwy inne niż szare, które można utworzyć z kombinacji składników r, g, b reprezentowane są przez punkty wewnątrz sześcianu leżące poza przekątną, model nie zawiera wszystkich barw postrzeganych przez człowieka, wyświetlenie opisanej w modelu RB barwy na monitorze jest łatwe, opisanie przy pomocy składowych r, g, b barwy, którą sobie w jakiś sposób wyobrażamy, lub mamy zadaną w postaci próbki jest raczej trudne. Wyświetlenie barwy opisanej składowymi r, g, b Przed przystąpieniem do napisania kolejnego programu wygodnie będzie wprowadzić pojęcie funkcji. W języku systemu MATALB funkcja jest jednym z podstawowych elementów składni programu. Funkcja umożliwia strukturalizację programu a tym samym ułatwia programowanie i analizę kodu. W dotychczas pisanych programach funkcje były wielokrotnie używane, lecz jeszcze ani razu nie były samodzielnie definiowane. Dla sprawniejszego wykonania kolejnych zadań dogodnie będzie zapoznać się ze sposobem określania własnych funkcji. Aby napisać nową funkcję należy wykonać następujące czynności:

Po uruchomieniu środowiska MATLAB otworzyć okno edytora i przygotować się do pisania nowego programu wykonując polecenia File, New, M-file W oknie edytora wpisać treść kodu funkcji stosując następująca składnię. %********************************************************************** % Szablon funkcji w języku MATLAB %********************************************************************** function [y_1, y_2,...,y_n] = nazwa_funkcji(arg_1, arg_2,..., arg_m) %... % treść kodu funkcji %... Wykonać polecenie SaveAs i zapisać program w folderze roboczym pod nazwą nazwa_funkcji (powstanie w ten sposób plik tekstowy o nazwie nazwa_funkcji.m). Nazwa musi być unikalna, to znaczy taka jakiej nie ma jeszcze żadna inna funkcja zdefiniowana wcześniej. Aby wykonać program opisany przez funkcję należy w linii komend środowiska MATLAB wpisać: >> [y_1, y_2,...,y_n] = nazwa_funkcji(arg_1, arg_2,..., arg_m) i nacisnąć klawisz Enter. Oczywiście można także użyć takiej funkcji do pisania dowolnego programu, czy innej funkcji, tak jak poprzednio używano gotowych funkcji, znajdujących się w środowisku programistycznym MATLAB i w pakiecie Image Processing Toolbox. Wracając do problemu wyświetlania barw opisanych w kategoriach modelu RB należy na początku zrealizować proste zadanie, polegające na napisaniu funkcji wyświetlającej obraz barwny, którego wszystkie punkty mają ten sam kolor opisany przy pomocy składowych r, g, b. Projektowana funkcja o nazwie n.p. display_rgb powinna wyświetlać obraz o rozmiarze 256x256 punktów, składający się z pikseli o tym samym kolorze, opisanym przez trzy składowe r, g, b przy założeniu, że r, g, b [0, 1]. Pierwszą linię programu definiującego funkcję można zapisać więc tak: [] = display_rgb(r, g, b) Dwa niewypełnione nawiasy [] oznaczają, że funkcja nie zwraca niczego, bowiem zgodnie z założeniem jej zadaniem jest jedynie wyświetlenie obrazu a nie obliczanie jakiegoś wyniku. Dalszą część kodu funkcji należy napisać stosując następujące wytyczne: Zadeklarować zgodną z rozmiarami obrazu tablicę o elementach typu (double) zawierająca same zera. Wypełnić odpowiednie elementy tablicy składowymi r, g, b.

Wyświetlić obraz odpowiadający utworzonej tablicy. Wynik powinien być taki jak na rysunku 2 Rys. 2. Obraz wypełniony punktami o kolorze r = 12, g = 23, b = 47 2. Model HSV Model HSV (Hue, Saturation, Value) znacznie lepiej niż model RB nadaję się do opisania barwy zadanej w postaci próbki lub barwy wyobrażanej. Model ma postać odwróconego stożka wypełnionego barwnymi punktami (Rys. 3). Barwa opisywana jest w tym przypadku przy pomocy trzech liczb (h, s, v), przy czym h, s, v [0, 1]. Pierwsza składowa h określa odcień barwy i jej zmiana o 0 do 1 odpowiada to zmianie od czerwonego przez żółty, zielony, cyjanowy, niebieski, fioletowy i z powrotem do czerwonego (tak jak pokazują strzałki na rysunku 3.). Druga składowa s reprezentuje nasycenie barwy i jej zmiana od 0 do 1 odpowiada zmianie od szarości do barwy czystej. Trzeci element modelu, składowa v opisuje jasność barwy, 0 reprezentuje barwę najciemniejszą a 1 najjaśniejszą. Typowy algorytm ustalania składowych opisu barwy zadanej na przykład w postaci próbki jest taki: Ustawić wszystkie składowe na 1, Zmieniać składową h (odcień) tak, aby osiągnąć wrażenie maksymalnego podobieństwa z analizowaną próbką Zmieniać s (nasycenie),

Zmieniać v (jasność) 0 1 Rys. 3. Model HSV wyobrażony jako odwrócony stożek Zastosowanie modelu HSV do opisania barwy zadanej w postaci próbki Zadanie ma na celu napisanie funkcji wyświetlającej obraz wypełniony punktami o kolorze opisanym przez zadane składowe h, s, v. Funkcja powinna ponadto wyświetlać na konsoli składowe r, g, b, odpowiadające zadanemu kolorowi. Podobni jak w poprzednim zadaniu powinien być to obraz o rozmiarze 256x256 punktów a funkcja może nazywać się display_hsv. Algorytm realizacji zadania jest następujący: Zadeklarować zgodne z rozmiarami obrazu dwie tablice o elementach typu (double) zawierające same zera. Jedna tablica będzie przeznaczona na obraz opisany w modelu HSV a druga w RB Wypełnić odpowiednie elementy tablicy opisującej obraz w modelu HSV składowymi h, s, v. Wypełnić tablicę opisującą obraz w modelu RB wartościami składowych r, g, b przeliczonymi z modelu HSV (należy zastosować funkcję hsv2rgb()). Wyświetlić na konsoli składowe r, g, b jakiegoś punktu obrazu. Wyświetlić obraz opisany w modelu RB.

Dla sprawdzenia można wyświetlić obraz, którego punkty opisano składowymi h = 34, s = 83, v = 77, powinien on wyglądać mniej więcej tak: Rys. 4. Obraz wypełniony punktami o kolorze h = 34, s = 83, v = 77 Ostatnia część zadania polega na znalezieniu opisu w modelu RB barwy, której próbka pokazana została na rysunku 5. Rys. 5. Próbka barwy z logo Politechniki Wrocławskiej

Do rozwiązania problemu wygodnie będzie wykorzystać funkcję napisaną samodzielnie funkcję display_hsv()oraz algorytm ustalania barwy w modelu HSV opisany na początku niniejszego punktu. 3. Modele luminacja - chrominancja Modele luminacja chrominancja najczęściej przedstawiane są w postaci zależności pozwalających przeliczyć wartości składowych określających barwę w kategoriach modelu RB na inne trzy liczby. Pierwsza z nich nosi nazwę luminancji i zwykle oznaczana jest literą Y. Luminancja określa jasność punktów obrazu i wyświetlona w stopniach szarości bardzo dobrze prezentuje obraz barwny jako monochromatyczny. Pozostałe dwie składowe, różnie definiowane i oznaczane, noszą nazwę chrominancji i zawierają informację, która łącznie z luminancja określa obraz barwny. Poniżej podano wzory opisujące trzy najbardziej popularne modele: Model YUV stosowany jest w systemie telewizji PAL Y 229 U 146 V 617 587 288 517 114 R 434 100 B Model YIQ określony dla systemu telewizji NTSC Y 229 I 168 Q 212 587 257 528 114 R 321 311 B Model YC b C r stosowany w systemach telewizji cyfrowej i telewizji cyfrowej wysokiej rozdzielczości HDTV Y 229 Cb 168 C r 500 587 331 418 114 R 500 082 B Można zauważyć, że wszystkie trzy modele opisane są jako przekształcenia liniowe. Można sprawdzić także, że dla każdego z nich istnieje przekształcenie odwrotne pozwalające przeliczyć barwę ze składowych luminancja - chrominancja z powrotem na składowe w

modelu RB. Trzecia wspólna cecha to fakt, że luminancja Y dla każdego modle wyrażona jest tak samo, przy pomocy równania Y 229 R 587 114 B Równanie to określa, w jakich proporcjach trzeba zmieszać barwy podstawowe R,, B, aby uzyskać barwę białą. Współczynniki w równaniu wynikają z wykresu CIE-XYZ prezentowanego na wykładzie i można je wyznaczyć na przykład wykreślni opierając się na pokazanej na rysunku 6 konstrukcji. P C = (33, 33) R B Rys. 6. Luminancja wyrażona jako kombinacja składowych R., B Zakładając, że dane są trzy barwy podstawowe reprezentowane na wykresie przez punkty R, i B oraz barwa biała wyrażona przez punkt C o współrzędnych chromatycznych (333, 333 ). Postępowanie można opisać tak: Zmieszać barwy R i w takich proporcjach tak, aby uzyskać barwę reprezentowaną przez punkt P, która po zmieszaniu znów w odpowiednich proporcjach z barwą B da w efekcie barwę białą C.

Symulacja uproszconego toru telewizji transmisji obrazu w telewizji cyfrowej Modele luminancja chrominancja mają różne zastosowania. Jednym z ważniejszych jest technika telewizyjna. Poniższy przykład pokazuje jak można, przez zamianę obrazu z modelu RB na model YC b C r ograniczyć ilość informacji przesyłanej przez kanał transmisyjny, praktycznie bez straty jakości obrazu. Na rysunku 7 pokazano zasadę, według której funkcjonuje tor transmisji obrazu. Na początku w koderze, przeprowadzana jest konwersja obrazu z modelu RB na model YC b C r. W dalszej części toru sygnały luminacji i chrominancji traktowane są różnie. Sygnał luminacji Y przesyłany jest bez zmiany poprzez kanał transmisyjny do odbiornika. Natomiast dwa pozostałe sygnały opisujące, chrominancję, czyli C b i C r poddawane są następującym przekształceniom. R Y Y Y Y R RB do YC b C r C b Downsampling C b /4 C b /4 Upsampling C b YC b C r do RB B C r Downsampling C r /4 C C r /4 Upsampling C r B KODER KANAŁ TRANSMISYJNY DEKODER Rys. 7. Uproszczony schemat toru transmisji obrazu w systemie telewizji cyfrowej W koderze tablice opisujące składowe C b i C r poddawane są procesowi tak zwanego downsamplingu (zwanego też czasem podpróbkowaniem), schemat tej operacji pokazano na rysunku 8. Downsampling powoduje ograniczenie liczby informacji w sygnale, bowiem z tablic C b i C r pozostaje jedynie ¼ opisu punktów obrazu. Tak, więc dla przykładu, jeśli obraz zapisany jest przy pomocy trzech tablic R,, B o rozmiarze 256 x 256 to informacja na wyjściu kodera będzie zajmował 1 tablicę o wymiarze 256 x 256 (składowa Y) oraz dwie tablice o rozmiarach 128 x 128. Można łatwo policzyć, że w ten sposób osiąga się zmniejszenie informacji do przesłania w kanale transmisyjnym o połowę.

6 13 23 7 54 23 12 9 6 23 55 76 42 73 7 23 75 58 downsampling 55 7 Rys. 8. Schemat ilustrujący downsamling W dekoderze przeprowadzana jest operacja odwrotna do downsamplingu zwana upsamplingiem (nadpróbkowanie). Operacje została wyjaśniona na rysunku 9. Tablice opisujące składowe C b i C r zostają uzupełnione przez powielanie do pierwotnych rozmiarów. Oczywiście różnią się one od pierwotnych gdyż w procesie upsamplingu część informacji została bezpowrotnie stracona. 6 6 23 23 6 23 6 6 23 23 55 7 upsampling 55 55 55 55 7 7 7 7 Rys. 9. Schemat ilustrujący upsampling Ostatnim etapem wykonywanym w dekoderze jest konwersja informacji opisującej obraz z powrotem do modelu R,, B. Jest oczywiste, że będzie to obraz trochę inny niż źródłowy, gdyż tablice opisujące, chrominancję są inne niż źródłowe. Okaże się jednak dalej, że różnice są praktycznie niedostrzegalne dla obserwatora a jak już zauważono wcześniej liczba informacji do przesłania przez kanał transmisyjny jest przy tym sposobie kodowana o połowę mniejsza. Fakt ten może potwierdzić następujący eksperyment. Należy napisać program symulujący działanie toru transmisyjnego pokazanego na rysunku 7. Algorytm jest taki: Przeczytać obraz źródłowy z pliku Lena_color_256.tif i umieścić go w odpowiedniej tablicy. Przeprowadzić konwersję obrazu do modelu YC b C r posługując się funkcją rgb2ycbcr()

Wyświetlić obraz źródłowy i składowe Y, C b, C r, wynik powinien wyglądać mniej więcej tak: Rys. 1 Obraz źródłowy i jego rozkład na składowe Y, C b, C r Dla składowych C b i C r, wykonać operację downsamplingu (użyć funkcji down_sampling(), która wykonuje to co pokazano na rysunku 8, czyli przekształca kwadratowy obraz w obraz 4 razy mniejszy wycinając ¾ punktów). Dla tablic uzyskanych w wyniku downsamplngu w punkcie poprzednim, wykonać upsamplng (użyć funkcji up_sampling(), która wykonuje to, co pokazano na rysunku 9, czyli przekształca kwadratowy obraz w obraz 4 razy większy, powielając punkty). Wyświetlić efekt w postaci obrazu źródłowego, składowej luminacji Y i zrekonstruowanych w wyniku upsamplingu składowych C b i C r. Efekt powinien być taki jak na rysunku 11. Należy porównać wizualnie obrazy składowych C b i C r na rysunkach 10 i 11 (na ekranie monitora różnice będą widoczne).

Rys. 11. Obraz źródłowy, składowa Y i zrekonstruowane w dekoderze składowe C b, C r Wykonać konwersję obrazu opisanego luminancją Y i zrekonstruowanymi w dekoderze składowymi C b i C r na obraz opisany w modelu RB używając funkcji ycbcr2rgb(), Wyświetlić obraz źródłowy i zrekonstruowany w dekoderze obok siebie i porównać na ile obraz odebrany przez odbiornik różni się od obrazu źródłowego. Wynik powinien wyglądać tak jak na rysunku 12. Rys. 12. Obraz źródłowy i obraz zrekonstruowany w odbiorniku

Na zakończenie, można przeanalizować podobny tor transmisyjny, lecz bez konwersji z modelu RB na YC b C r. Schemat takiego toru może na przykład wyglądać tak jak na rysunku 13. R R Downsampling /4 /4 Upsampling B Downsampling B/4 B/4 Upsampling B KODER KANAŁ TRANSMISYJNY DEKODER Rys. 13. Tor transmisyjny bez uwzględnienia konwersji na model luminancja- chrominancja Po wykonaniu eksperymentu (bardzo łatwo jest go wykonać komentując jedynie fragmenty kodu w napisanym poprzednio programie) okaże się, że obraz otrzymany na wyjściu dekodera znacząco różni się od obrazu źródłowego. Zadanie dodatkowe: Zmodyfikować funkcje down_sampling() i up_sampling(), tak że jedna próbka z tablic składowych chrominancji obrazu wejściowego pobierana będzie nie dla 4 lecz dla 16 pikseli, czyli 4 razy rzadziej niż w poprzednim przypadku. Sprawdzić, jak zmieni się jakość obrazu odtworzonego przy takim sposobie ograniczenia informacji niesionej przez składowe chrominancji.