PODSTAWY PRZETWARZANIA INFORMACJI OBRAZOWEJ



Podobne dokumenty
Techniki wizualizacji. Ćwiczenie 2. Obraz cyfrowy w komputerze

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

dr inż. Tomasz Krzeszowski

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

Metody komputerowe w obliczeniach inżynierskich

Klasyfikacja metod kompresji

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

Obraz jako funkcja Przekształcenia geometryczne

1. Przypisy, indeks i spisy.

Wykorzystanie grafiki wektorowej do tworzenia elementów graficznych stron i prezentacji

FORMATY PLIKÓW GRAFICZNYCH

Klasyfikacja metod kompresji

Cała prawda o plikach grafiki rastrowej

Obróbka grafiki cyfrowej

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

Formaty plików graficznych

GRAFIKA RASTROWA. WYKŁAD 2 Oprogramowanie i formaty plików. Jacek Wiślicki Katedra Informatyki Stosowanej

MATLAB Z3. Rafał Woźniak. Warsaw, Faculty of Economic Sciences, University of Warsaw

Gimp Grafika rastrowa (konwersatorium)

Kompresja obrazów i formaty plików graficznych

Diagnostyka obrazowa

Grafika komputerowa. Dla DSI II

Rozszerzenia plików graficznych do publkacji internetowych- Kasia Ząbek kl. 2dT

Podstawy grafiki komputerowej. Teoria obrazu.

INFORMATYKA WSTĘP DO GRAFIKI RASTROWEJ

Podstawy grafiki komputerowej

Diagnostyka obrazowa

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

Kompresja Stratna i Bezstratna Przegląd Najważniejszych Formatów Graficznych

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

Formaty plików graficznych - wprowadzenie

Formaty plików graficznych

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT.

Laboratorium Przetwarzania Sygnałów

Laboratorium Cyfrowego Przetwarzania Obrazów

dr hab. inż. Lidia Jackowska-Strumiłło, prof. PŁ Instytut Informatyki Stosowanej, PŁ

GRAFIKA. Rodzaje grafiki i odpowiadające im edytory

Technologie Informacyjne

Formaty plików graficznych

Grafika rastrowa (bitmapa)-

Analiza obrazu. wykład 1. Marek Jan Kasprowicz Uniwersytet Rolniczy Marek Jan Kasprowicz Analiza obrazu komputerowego 2009 r.

Warstwa Rysunek bitmapowy Rysunek wektorowy

Załącznik nr 1 WYMAGANIA DOTYCZĄCE OPISU I PRZEGLĄDU OBRAZÓW REJESTROWANYCH W POSTACI CYFROWEJ I. Wymagania ogólne

3. Opracować program kodowania/dekodowania pliku tekstowego. Algorytm kodowania:

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

Formaty obrazów rastrowych biblioteki PBM

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

Przetwarzanie i analiza obrazów w Matlabie

Kurs grafiki komputerowej Lekcja 2. Barwa i kolor

Python: JPEG. Zadanie. 1. Wczytanie obrazka

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Strona 1 z 5 Wersja z dnia 9 grudnia 2010 roku

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

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

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

1 Podstawy c++ w pigułce.

Do obsługi plików BMP należy stworzyć klasę przechowującą zawartość obrazu i udostępniającą następujące metody:

Laboratorium przetwarzania obrazów

Sposoby cyfrowego zapisywania obrazów

Programowanie obiektowe

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.

Grafika na stronie www

Kodowanie informacji. Przygotował: Ryszard Kijanka

Rozpoznawanie obrazu. Teraz opiszemy jak działa robot.

Ćwiczenia z grafiki komputerowej 4 PRACA NA WARSTWACH. Miłosz Michalski. Institute of Physics Nicolaus Copernicus University.

Technologie cyfrowe semestr letni 2018/2019

Odczytywanie i zapisywanie obrazów rastrowych do plików, operacje punktowe na tablicach obrazów

Przekształcenia punktowe

Komputerowa analiza obrazu Laboratorium 4

Podstawy Informatyki Wykład V

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

Laboratorium Przetwarzania Sygnałów

Odtwarzanie sygnałów w Matlabie

Diagnostyka obrazowa

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

1. Odcienie szaro±ci. Materiaªy na wiczenia z Wprowadzenia do graki maszynowej dla kierunku Informatyka, rok III, sem. 5, rok akadem.

Układy VLSI Bramki 1.0

Ćwiczenie 2. Przetwarzanie graficzne plików. Wprowadzenie teoretyczne

Przetwarzanie obrazu

Diagnostyka obrazowa

Podstawy przetwarzania obrazów teledetekcyjnych. Format rastrowy

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Laboratorium Cyfrowego Przetwarzania Obrazów

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

Diagnostyka obrazowa

Grafika komputerowa dziedzina informatyki zajmująca się wykorzystaniem technik komputerowych do celów wizualizacji artystycznej oraz wizualizacji i

Podstawy Programowania C++

Logiczny model komputera i działanie procesora. Część 1.

1 Temat: Wprowadzenie do biblioteki OpenCV

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

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

Katalog dobrych praktyk digitalizacyjnych dla obiektów bibliotecznych

Technologie Informacyjne

Powtórka algorytmów. Wprowadzenie do języka Java.

1.3. Tworzenie obiektów 3D. Rysunek 1.2. Dostępne opcje podręcznego menu dla zaznaczonego obiektu

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

Transkrypt:

PODSTAWY PRZETWARZANIA INFORMACJI OBRAZOWEJ

OKNA GRAFICZNE Okno graficzne można tworzyć odpowiednimi poleceniami (np. figure) Okna takie są zaś tworzone automatycznie w momencie wykonywania pewnych poleceń, w tym: o poleceń tworzących wykresy (np. plot) o Poleceń zobrazowania graficznego odpowiadającego tablicy liczbowej (np. imshow)

PODSTAWOWA REGUŁA Środowisko rozumie tablice liczbowe jako odpowiednik pewnego obrazu cyfrowego

JAK SPRAWDZIĆ JAKIEGO TYPU OBIEKTY LICZBOWE SĄ DOSTĘPNE W ŚRODOWISKU ROBOCZYM whos Name Size Bytes Class Attributes aaa11 10x10x3 2400 double

DANE STATYSTYCZNE DOTYCZĄCE ROZDZIELCZOŚCI WIDZENIA PRZEZ CZŁOWIEKA: Z odległości dobrego widzenia nie rozróżnia się na ogół detali bliższych niż 0.1 mm. Nie rozróżnia się na ogół więcej niż około 200 poziomów szarości Jaką więc minimalną ilość pikseli oraz bitów wymagamy dla obrazu zdjęciowego o wymiarach 50x100 mm?

BARWA PIKSELA W OBRAZIE CYFROWYM SYSTEMU RGB trójkąt barw: a/ składanie barwy wynikowej fizycznie b/ składanie barwy wynikowej w logice cyfrowej komputerów c/ pojęcie barwy nasyconej oraz pojęcie stopnia nasycenia barwy d/ co rozumiemy przez to że piksel jest biały lub szary? R=G=B e/ co rozumiemy przez to że piksele są monochromatyczne? Proporcje R:G:B identyczne dla wszystkich pikseli

BITY A ILOŚĆ DOSTĘPNYCH BARW Dla jednego piksela: Dla sygnałów R, G, oraz B zapisanych na 8 bitach każdy mamy 2^24 = 16 777 216 ~~ 1.7 miliona kombinacji barw Dla sygnałów R, G, oraz B zapisanych na 16 bitach każdy mamy 2^48 = ~~ 2.8*10^14 kombinacji barw

JASKRAWOŚĆ PIKSELA W OBRAZIE CYFROWYM SYSTEMU RGB (R + G + B)/3??? sqrt( (R^2 + G^2 + B^2)/3 )???

PODSTAWOWE POJĘCIA: Format pliku graficznego wskazywany zwykle przez rozszerzenie nazwy, np.(bmp, JPG, TIF, itd..) wynikający m.in.. ze sposobu kompresji informacji w pliku oraz organizacji danych w pliku Format obrazu w środowisku MATLAB określa sposób reprezentacji danych obrazowych pikseli poprzez tablice (macierze)

TYPY DANYCH OBRAZOWYCH Typ Binary (binarny) obrazu (zwany też obrazem typu bilevel) jest reprezentowany przez tablicę logiczną zawierającą tylko zera i jedynki, interpretowane jako czerń i biel. Wartości pikseli (elementy tablicy) określają wartość intensywności świecenia. Oznaczany często jako typ BW

GENERACJA TABLIC DLA TYPU BW Dowolną tablicę (np. dwuwymiarową) można zamienić na tablicę zero-jedynkową używając operatorów relacji, np. polecenie: astra17 = aaaaa>0.56 utworzy tablicę binarną astra17 z dwuwymiarowej tablicy typu double o nazwie aaaaa. Realizowany przy tym proces binaryzacji działa względem poziomu cięcia 0.56

TYP INDEXED (INDEKSOWANY) OBRAZU (zwany również obrazem typu pseudocolor ) jest reprezentowany przez tablicę typu logical, uint8, uint16, single, lub double, o rozmiarach wynikających z ilości oraz układu geometrycznego pikseli, gdzie wartości pikseli w tablicy są prostymi indeksami do tablicy o nazwie colormap. Colormap jest tablicą o rozmiarach m-x-3 o elementach typu double!!!!!!. Typ Indeksed oznaczany często jest jako typ IND

TYP IND Dla tablicy obrazowej typu single lub double wartości powinny być całkowite i zmieniać się w zakresie [1, p]. Dla tablicy typu logical, uint8, lub uint16, wartości mogą zmieniać się w zakresie [0, p-1], co odpowiada wierszom od 1-szego do p-tego z tablicy colormap.

OBRAZY TYPU GRAY (MONOCHROMATYCZNE) są reprezentowane przez tablicę typu uint8, uint16, int16, single, lub double, o rozmiarach wynikających z ilości oraz układu geometrycznego pikseli, gdzie wartości pikseli (elementy tablicy) określają wartość intensywności świecenia. Typ monochromatyczny oznaczany często jest jako typ Gray

OBRAZY TYPU GRAY Dla tablic typu single lub double wartości zmieniają się w zakresie [0, 1]. Dla wartości typu uint8, wartości należą do zakresu [0,255]. Dla wartości typu uint16, wartości należą do zakresu [0, 65535]. Dla int16 wartości należą do zakresu [-32768, 32767].

OBRAZ TYPU TRUECOLOR jest reprezentowany przez tablicę o rozmiarach m-x-n-x-3 której elementy mogą być typu uint8, uint16, single, lub double. Dla tablicy typu single lub double wartości mogą należeć do przedziału [0, 1]. Dla wartości typu uint8, wartości mogą należeć do przedziału [0, 255]. Dla wartości typu uint16, wartości mogą należeć do przedziału [0, 65535]. Typ truecolor oznaczany często jest jako typ RGB

GENEROWANIE TABLIC DLA TYPU RGB Tablica jest trójwarstwowa, stąd elementy są identyfikowane przez trzy indeksy. Aby np. nadać wartość jednej z trzech liczb definiujących świecenie piksela można użyć podstawienia: jasio769(17,21,3) = 0.888 Zaś przykładowo dla całego piksela trzeba podać trójkę liczb: astranasza(17,21,:) = [0.8;066;0.123] astranasza(11:14,764:1222,:) = [1;1;0]

KONWERSJE TYPÓW DANYCH OBRAZOWYCH W TABLICACH LICZBOWYCH Uwaga:!!!) Konwersje typu danych obrazowych prowadzą często do innego obrazu, o ile są dokonywane przez programistę bez niezbędnego przeskalowania wartości liczb przy zmianie ich typu. Przykładowo wartość typu double wynosząca 0.5 musi zmienić wartość na 127 (dlaczego???)

KONWERSJE TYPÓW DANYCH OBRAZOWYCH W TABLICACH LICZBOWYCH Aby unikać przeskalowań można użyć wbudowanych funkcji które same takich przeskalowań dokonują. Sa to np.: im2uint8, im2uint16, im2int16, im2single, Im2double im2bw

KONWERSJE TYPÓW DANYCH W MATLABOWEJ REPREZENTACJI OBRAZÓW Podobnie, pilnują tego funkcje wbudowane służące do konwersji typu (matlabowego) obrazu, takie jak np.: gray2ind ind2gray ind2rgb rgb2gray rgb2ind i inne

KONWERSJE TYPÓW DANYCH W MATLABOWEJ REPREZENTACJI OBRAZÓW Utrata informacji w trakcie konwersji wynikać może między innymi z innego przedziału kwantyzacji dla zapisu wartościami typu uint8 a typu uint16.

KONWERSJE TYPÓW DANYCH W MATLABOWEJ REPREZENTACJI OBRAZÓW Przykładowo w typie IND reprezentacji obrazu tablica obrazu zawiera tylko indeksy kierujące do konkretnego wiersza tablicy colormap, a nie zawierają same w sobie informacji o kolorze, tak więc konwersja typu indeksów nie umożliwia zmiany kwantyzacji informacji o kolorze pikseli.

KONWERSJE TYPÓW DANYCH W MATLABOWEJ REPREZENTACJI OBRAZÓW Inny przykład: reprezentacja indeksowana z elementami uint16 lub double nie może być konwertowana do tablicy o elementach typu uint8, gdyż ta oferuje tylko 256 rozróżnialnych wartości. W takim przypadku można użyć funkcji imapprox która realizuje kwantyzację kolorów w tablicy colormap redukując liczbę rozróżnialnych kolorów w macierzy kolorów.

WCZYTYWANIE DANYCH Z PLIKÓW GRAFICZNYCH Import obrazu z dowolnego obsługiwanego formatu plików graficznych, o dowolnej obsługiwanej reprezentacji bitowej danych realizuje funkcja imread

WCZYTYWANIE DANYCH Z PLIKÓW GRAFICZNYCH Poniższe polecenie odczytuje dane obrazu typu truecolor i zapisuje w przestrzeni roboczej jako zmienną (tablicę) typu RGB234: RGB234 = imread( rty.jpg');

WCZYTYWANIE DANYCH Z PLIKÓW GRAFICZNYCH Jeżeli format pliku graficznego używa 8-mio bitowego zapisu pikseli, wówczas polecenie imread zapisuje wynik jako tablicę typu uint8. Dla formatów plików graficznych o 16 bitowych danych takich jak PNG lub TIFF, imread tworzy tablicę typu uint16.

WCZYTYWANIE DANYCH Z PLIKÓW GRAFICZNYCH imread używa dwóch zmiennych do zapisania obrazu indeksowanego w przestrzeni roboczej : jedną dla obrazu oraz drugą dla skojarzonej macierzy colormap (nazwa opcjonalna). Imread zawsze zapisuje dane do colormap jako double, nawet jeśli sama tablica obrazu może być typu uint8 lub uint16, np.: [X,map] = imread( aza.tif');

WCZYTYWANIE DANYCH Z PLIKÓW GRAFICZNYCH Imread rozpoznaje format wczytywanego pliku graficznego analizując kontekst. Można również podać format wczytywanego pliku graficznego jako parametr wywołania funkcji imread. Images Toolbox obsługuje standardowe formaty graficzne: Microsoft Windows Bitmap (BMP), Graphics Interchange Format (GIF), Joint Photographic Experts Group (JPEG), Portable Network Graphics (PNG), Tagged Image File Format (TIFF).

WCZYTYWANIE DANYCH Z PLIKÓW GRAFICZNYCH Jeśli plik graficzny zawiera szereg obrazów, to imread wczytuje tylko jeden; należy wówczas użyć imread z zależnymi od formatu parametrami, np.: mri = uint8(zeros(128 128 1 270)); for frame=1:27 [mri(:,:,:,frame),map] = imread('mri.tif',frame); end

ZAPIS OBRAZÓW DO PLIKÓW Funkcja imwrite Jeśli podane jest rozszerzenie nazwy pliku graficznego do którego zapisujemy obraz, to imwrite próbuje rozpoznać z tego pożądany format zapisywanych danych Można również podać nazwę tego formatu jako parametr funkcji imwrite.

ZAPIS OBRAZÓW DO PLIKÓW Poniższy przykład zapisuje obraz przechowywany w tablicy X (wraz ze skojarzoną mapą kolorów) do pliku graficznego o formacie BMP. imwrite(x,map, dfggfd.bmp')

ZAPIS OBRAZÓW DO PLIKÓW Specyfikowanie parametrów specyficznych dla danego formatu graficznego Przykłady: imwrite(i, a345.png','bitdepth',4); imwrite(a, fg56.jpg', 'Quality', 100);%wsp. kompr.

ZAPIS OBRAZÓW DO PLIKÓW Dla niektórych formatów plików, takich jak TIFF, obraz binarny może być przechowywany w formacie jednobitowym. W tym przypadku imread zapisuje dane w przestrzeni roboczej jako tablicę logiczną. BW = imread( hnhn.png'); imwrite(bw, hnhn.tif'); info = imfinfo( hnhn.tif'); info.bitdepth ans = 1

ZAPIS OBRAZÓW DO PLIKÓW Generalnie imwrite stosuje format dopuszczalny przez typ pliku wynikowego; najczęściej jest to uint8 lub uint16, dla większości typów danych w zapisywanej tablicy (również typu double).

UZYSKIWANIE INFORMACJI O PLIKU GRAFICZNYM: Funkcja imfinfo podaje m.in. następujące informacje: nazwa pliku format pliku rozmiar pliku rozmiary obrazu w pikselach liczba bitów na piksel typ obrazu

KONWERTOWANIE FORMATU PLIKÓW GRAFICZNYCH Można użyć środowiska roboczego wczytując, a następnie zapisując plik, np.: astra_tiff = imread( astra.tif'); imwrite(astra_tiff, astra.jpg');

WCZYTYWANIE ORAZ ZAPISYWANIE DANYCH W FORMACIE PLIKÓW MEDYCZNYCH Dane w plikach typu DICOM zapisywane są z użyciem typu danych int16

WCZYTYWANIE ORAZ ZAPISYWANIE DANYCH W FORMACIE PLIKÓW MEDYCZNYCH Pliki typu DICOM zawierają metadane które zawierają m. in. informacje o wielkości pliku, rozmiarach obrazu, głębi bitowej, aparaturze użytej do uzyskania obrazu. Specyfikacja typu DICOM określa pola dla tych danych, ale też pola dla danych prywatnych.

DLA ODCZYTU METADANYCH Z PLIKÓW TYPU DICOM STOSUJE SIĘ FUNKCJĘ: dicominfo która umieszcza wczytywane informacje w strukturalnym typie danych w przestrzeni roboczej. Pola tej struktury zawierają specyficzne części metadanych typu DICOM

PRZYKŁAD : info = dicominfo('ct-mono2-16-pacjent334.dcm') info = Filename: [1x47 char] FileModDate: '24-Dec-2000 19:54:47' FileSize: 525436 Format: 'DICOM' FormatVersion: 3 Width: 512 Height: 512 BitDepth: 16 ColorType: 'grayscale' SelectedFrames: [] FileStruct: [1x1 struct] StartOfPixelData: 1140 MetaElementGroupLength: 192 FileMetaInformationVersion: [2x1 double] MediaStorageSOPClassUID: '1.2.840.10008.5.1.4.1.1.7' MediaStorageSOPInstanceUID: [1x50 char] TransferSyntaxUID: '1.2.840.10008.1.2' ImplementationClassUID: '1.2.840.113619.6.5'

DO ODCZYTU DANYCH OBRAZOWYCH służy natomiast funkcja Dicomread np.: I = dicomread('ct-mono2-16-pacjent334.dcm');

Aby umieścić dane lub metadane w pliku stosuje się funkcję Przykładowo: dicomwrite dicomwrite(i, pacjent334.dcm') W trakcie zapisu danych do pliku typu DICOM funkcja dicomwrite automatycznie tworzy zestaw niezbędnych pól przeznaczonych na metadane, wymaganych w strukturze formatu DICOM.

OBSŁUGA DANYCH OBRAZOWYCH Z URZĄDZEŃ MEDYCZNYCH Images Toolbox daje możliwość pełnej rejestracji informacji uzyskiwanych m. in. z urządzeń diagnostycznych: Rezonansu magnetycznego; Radioterapii promieniami X; Medycyny nuklearnej; Tomografii komputerowej.

WYŚWIETLANIE INFORMACJI OBRAZOWEJ Dostępne są dwie funkcje: imshow oraz imtool (który uruchamia okno dialogowe do sprawnej wizualizacji, ale który bazuje na użyciu imshow i to w nieco ograniczonym zakresie; za to umożliwia przewijanie obrazu, oglądanie wybranych fragmentów, prostą regulację kontrastu, itp.).

WYŚWIETLANIE INFORMACJI OBRAZOWEJ Obie pracują z użyciem architektury Handle Graphics, która tworzy obiekt graficzny i wyświetla go jako obiekt rysunkowy. Generalnie przewaga imshow polega jednak na tym, że automatycznie uruchamia ona pewne właściwości architektury Handle Graphics do optymalizacji tworzonego zobrazowania. Imshow realizuje wyświetlanie formatów monochromatycznych, RGB, binarnych oraz indeksowanych.

WYŚWIETLANIE INFORMACJI OBRAZOWEJ moon = imread('moon.tif'); imshow(moon);

WYŚWIETLANIE INFORMACJI OBRAZOWEJ Można też przekazać nazwę pliku bezpośrednio jako argument, np.: imshow('moon.tif'); ale w tym przypadku dane obrazowe nie są umieszczane w przestrzeni roboczej. Aby tak się jednak stało należy np. użyć funkcji getimage: która pobiera dane z aktualnie aktywnego obiektu graficznego i umieszcza je w przestrzeni roboczej, np.: moon = getimage;

SPECYFIKOWANIE POCZĄTKOWEGO POWIĘKSZENIA OBRAZU Domyślnie 1 piksel ekranu na 1 piksel obrazu. Jeśli nie mieści się to jest przeskalowany i wyświetlany z komunikatem który o tym informuje. Aby narzucić skalę (procentową) powiększenia można użyć np. funkcji: sss = imread( astra34.tif'); imshow(sss, 'InitialMagnification', 150) Realizacja takiego przeskalowywania wiąże się z interpolowaniem danych obrazowych przy wyliczaniu wartości dla poszczególnych pikseli obrazu na ekrenie

WYŚWIETLANIE OBRAZÓW INDEKSOWANYCH Dla obrazów indeksowanych wskazane jest podanie nazw obu tablic: obrazu i mapy kolorów, np.: imshow(x,map)

WYŚWIETLANIE OBRAZÓW MONOCHROMATYCZNYCH Obraz monochromatyczny (grayscale) jest w przestrzeni roboczej przechowywany tak jak obraz indeksowany, z tym, że tablica mapy kolorów jest używana przez środowisko robocze w sposób niewidoczny dla użytkownika. Jest to możliwe dzięki temu, że w obrazach formatu gray dla każdego wiersza macierzy kolorów jest: R=G=B

WYŚWIETLANIE OBRAZÓW MONOCHROMATYCZNYCH Ponadto w/w wartości mają sens poziomu szarości, a więc program może je wygenerować sam jako ciąg wartości zależny od rozdzielczości skali szarości (czyli od liczby bitów na piksel). W tej sytuacji elementy tablicy obrazu o formacie monochromatycznym są przez program traktowane jako indeksy do w/w mapy kolorów.

WYŚWIETLANIE OBRAZÓW MONOCHROMATYCZNYCH Wynika stąd, że program musi przeskalowywać elementy tablicy obrazu, i to w różny sposób zależny od typu danych użytych do zapisu tablicy obrazu (double, uint8, ). Stąd dla wyświetlenia obrazu monochromatycznego wystarczy podać nazwę tablicy obrazu, np.: imshow(i)

WYŚWIETLANIE OBRAZÓW MONOCHROMATYCZNYCH Powyższa metoda operowania środowiska programu Matlab na danych opisujących obraz monochromatyczny, zakładająca konieczność przeskalowywania wartości w macierzy obrazu tak aby stanowiły wartość indeksu do macierzy skali szarości stwarza cenną możliwość wpasowania w sensowny wykres danych w których występuje przekroczenie zakresów: [0,1] dla tablicy typu single lub double, [0,255] dla tablicy typu uint8, [0,65535] dla tablicy typu uint16, [-32767,32768] dla tablicy typu int16.

WYŚWIETLANIE OBRAZÓW MONOCHROMATYCZNYCH Należy wówczas wywoływać funkcję imshow z dodatkowymi parametrami: imshow(i,'displayrange',[low high]) które mogą wybiegać poza dopuszczalny zakres. Sytuacja takiego przekroczenia zakresu jest często wynikiem użycia zaawansowanych funkcji realizujących np. transformacje i wiele innych operacji przetwarzania obrazu.

WYŚWIETLANIE OBRAZÓW BINARNYCH Obrazy binarne są przechowywane z użyciem typu logical, zerowe wartości wyświetlane są jako czarne piksele, zaś wartości jedynkowe jako piksele białe, np.: BW = imread( rama.png'); imshow(bw)

lub przez użycie operatora logicznej negacji: imshow(~bw)

lub jeśli chcemy narzucić oba kolory obrazu binarnego to np.: imshow(bw,[1 0 0; 0 0 1])

WYŚWIETLANIE OBRAZÓW RGB Obraz RGB to w przestrzeni roboczej tablica m-x-nx-3 dająca wybrany piksel (r,c) określony trypletem liczb (r,c,1:3). Dla takiego obrazu w systemie 24 bitów/piksel obraz będzie odwzorowany bezpośrednio, np: RGB777 = imread( owocki.png'); imshow(rgb777)

WYŚWIETLANIE OBRAZÓW RGB W systemie o mniejszej ilości bitów na piksel wyświetlanie obrazu wiąże się z aproksymowaniem kolorów i ditheringiem.

WYŚWIETLANIE PLIKÓW Z FORMATU DICOM Dane te są zapisane jako 16-to bitowe ze znakiem, stąd musimy użyć składni autoskalującej w ramach funkcji imshow (imtool). imshow(i,'displayrange',[ ])

PRACA Z SEKWENCJAMI OBRAZÓW Możliwości środowiska przy operowaniu na tablicach wielowymiarowych stwarzają proste możliwości zapisu oraz przetwarzania danych stanowiących sekwencją obrazów. Przykładowo tablica o rozmiarach m-n-p może stanowić zapis p obrazów dwuwymiarowych monochromatycznych, zaś tablica m-n-3-p obrazów formatu truecolor (RGB).

PRACA Z SEKWENCJAMI OBRAZÓW W Toolboxie Images wiele funkcji przeznaczonych do złożonego przetwarzania obrazów pojedynczych może również operować na tablicach stanowiących sekwencję obrazów, pod warunkiem zadbania o szczegóły składni wywołania. Jako przykład można tu podać funkcję imtransform która odpowiednio wywoływana może tworzyć transformacje danych z jednej klatki obrazowej, albo też dane dotyczące tego samego piksela ale brane z kolejnych klatek sekwencji klatek.

PRACA Z SEKWENCJAMI OBRAZÓW Operowanie na sekwencji obrazów umożliwiają funkcje immovie oraz montaże. Proste złożenie kilku klatek umożliwia funkcja konkatenacji: cat zaś przykładowe wyodrębnienie trzeciej klatki: FRM3 = MULTI(:,:,:,3)

W szczególności PRACA Z SEKWENCJAMI OBRAZÓW mov = immovie(x,map) tworzy film z wieloklatkowej tablicy, odtwarzalny w środowisku poleceniem movie Natomiast funkcja montage składa klatki w jeden obraz

PRZETWARZANIE INFORMACJI VIDEO Przetwarzanie informacji video w środowisku matlabowym umożliwiają w szerokim zakresie dodatkowe pakiety oprogramowania, : Image Acqusition oraz Video and Image Processing Blockset stanowiący nakładkę do Simulinka

PODSTAWOWE GRUPY ZADAŃ FUNKCJONALNYCH REALIZOWANYCHE Z UŻYCIEM TOOLBOXU IMAGES: Konwersje formatów graficznych oraz typów danych Operacje bezkontekstowe na informacji barwnej pikseli, oraz geometryczne Określanie wartości miar geometrycznych w przestrzeni obrazowej Operacje algebraiczne na grupach obrazów

PODSTAWOWE GRUPY ZADAŃ FUNKCJONALNYCH REALIZOWANYCHE Z UŻYCIEM TOOLBOXU IMAGES: Przekształcenia morfologiczne Transformacje przestrzenne Filtracje przestrzenne Redukowanie zaszumienia, zamazania oraz zaplamienia obrazów Przetwarzanie informacji video

PRZYKŁADOWE ZADANIA DO ĆWICZEŃ WŁASNYCH wczytać z pliku obraz do środowiska Matlaba oraz zapisywać z powrotem do innego pliku w połączeniu ze zmianą formatu pliku graficznego; wykonać konwersje w grupie matlabowych(!) typów obrazów RGB, IND, GRAY, BW i sprawdzać strukturą macierzową zapisu tych obrazów; przeprowadzić liniowe oraz nieliniowe zmiany kontrastu dla wybranego obrazu; zmieniać kolor tła obrazu wg własnej definicji tego pojęcia; przegrupować piksele wybranego obrazu wg określonego kryterium; usuwać lub modyfikować fragment obrazu; mieszać w dobieranej proporcji dwa obrazy; binaryzować obraz z dobieranym poziomem cięcia; przeprowadzić wybraną operację logiczną względem dwóch obrazów binarnych. określić ilość pikseli w czarnej wyspie na białym tle dla przykładowego obrazu binarnego; ukryć wykres dwuwymiarowy w obrazie tak aby nie wprowadzić widzialnych zmian dla obserwatora.

WYMAGANIE PRZED LABORATORIUM: Powtórzyć metody operowania na tablicach i/lub macierzach. W szczególności dotyczy to: Generowania tablic liczbowych Dodawanie dodatkowych fragmentów do tablic Usuwanie fragmentów tablic Zmiany typu danych w tablicach Przeskalowywanie wartości liczb w tablicach Działania na tablicach z wykorzystaniem operatów tablicowych Działania na tablicach z wykorzystaniem operatów relacji Działania na tablicach z wykorzystaniem operatów logicznych