Grafika menedżerska
Grafika menedżerska
Grafika rastrowa, grafika
wektorowa
Wykład
Dziedziny informatyki związane z informacją
obrazową
Grafika komputerowa (ang. computer
graphics)
Przetwarzanie obrazu (ang. image
processing)
Rozpoznawanie obrazu (ang. pattern
recognization)
Grafika komputerowa
Tworzenie obrazu na podstawie
informacji opisowej – synteza obrazu
szerokie zastosowania
różna złożoność programów i nakładów
obliczeniowych koniecznych do
utworzenia obrazu
wykresy funkcji
kompozycje obrazów
obrazy generowane w czasie rzeczywistym
Przetwarzanie obrazu
Dotyczy zagadnień, w których dane
wejściowe i wyjściowe mają postać
obrazów
usuwanie zakłóceń, poprawa jakości obrazu
filtrowanie obrazu
kompresja danych obrazowych
segmentacja obrazu
redukcja obrazu do konturów
redukcja obrazu konturowego do figur
kreskowych
tworzenie przekrojów obrazu
Rozpoznawanie obrazu
Tworzenie opisu obrazu,
zakwalifikowanie obrazu do pewnej
szczególnej klasy.
odwrotność grafiki komputerowej –
analiza obrazu
w wyniku analizy obrazu powstaje opis
matematyczny, ciąg symboli lub graf
dalsze przetwarzanie danych opisowych
pozwala na wyciąganie wniosków
analitycznych
Rozpoznawanie wzorców
W rozpoznawaniu wzorców dąży się do klasyfikacji
danych (wzorców) w oparciu o informacje uzyskane
na drodze analizy informacji obrazowej. Klasyfikowane
wzorce to zazwyczaj grupy wyników pomiaru lub
obserwacji definiujące położenie odpowiadających im
punktów w wielowymiarowej przestrzeni cech.
Kompletny system rozpoznawania wzorców składa się
z:
sensora (czujnika), który dostarcza dane, które mają być
klasyfikowane lub opisywane
mechanizmu wydobywania (ekstrakcji) cech, które najlepiej
charakteryzują i separują klasę do której dana należy
mechanizmu przekształcenia klasy w opis matematyczny
(informacja opisowa)
schematu decyzyjnego, który realizuje właściwą część
procesu rozpoznawania
Przykłady
OCR (
Optical Character Recognization) -
zestaw technik lub oprogramowanie służące
do rozpoznawania znaków i całych tekstów z
pliku graficznego
o postaci rastrowej
OMR (
Optical Mark Recognization) -
rozpoznawanie w obrazie "znaczników" takich
jak pola wyboru (ang. check box), kody
kreskowe itp. Często stosowane w procesie
analizy ankiet
widzenie maszynowe
INFORMACJA
OPISOWA
INFORMACJA
OBRAZOWA
GK
RO
PO
GK – grafika komputerowa
PO – przetwarzanie obrazu
RO – rozpoznawanie obrazu
Formy danych obrazowych
4 klasy danych obrazowych
1 i 2 klasa – grafika rastrowa
3 i 4 klasa – grafika wektorowa
podział odnosi się do sposobu
reprezentacji (opisu) nie do treści
wizualnej
różne metody i algorytmy syntezy,
analizy i przetwarzania danych dla
każdej z klas
KLASA 1
Obrazy realistyczne
monochromatyczne i kolorowe
dokładnie odzwierciedlają rzeczywistość
reprezentowane jako macierze pamięci
elementy obrazu (piksele) są komórkami
macierzy
różne struktury komórek macierzy np.
1 bajt na element obrazu
1 bajt na każdy z 3 kolorów podstawowych
R,G,B (True Color)
Przykład: Struktura piksela w systemie graficznym Reality
Engine 2
komputera ONYX firmy Silicon Graphics
kolor
48 bitów
RGBA
składowa R
12 bitów
składowa G
12 bitów
składowa B
12 bitów
alfa blending (A) 12 bitów
bufor koloru
192 bity
4xRGBA
(color planes)
bufor głębokości Z:
integer
32 bity
floating-point
24 bity
bufor sterujący
8 bitów
(overlay/underlay planes)
Razem:
256 bitów na piksel
KLASA 2
Obrazy binarne
obrazy monochromatyczne – czarno-
białe (tekst)
element obrazu opisywany przez 1 bit
reprezentowane jako macierze pamięci
lub mapy bitowe
brak standardowego sposobu
grupowania bitów w bajt w pamięci
systemu graficznego
KLASA 3
Linie proste i krzywe
Obrazy tworzone przez kolejne sąsiadujące ze
sobą punkty
Przykłady:
kontury obszarów
wykresy
krzywe nieregularne
Reprezentacja danych:
współrzędne X i Y kolejnych punktów
przyrosty X i Y
kod łańcuchowy
różnicowy kod łancuchowy
Przyrosty X i Y
2
3
4
5
6
7
0
1
przyrosty: X
{0,1,2,3,4}
Y {0,6,7,1,2}
4 bity/punkt
Kod łańcuchowy
Kody łańcuchowe, w których wektor łączący dwa
kolejne punkty jest określony jednym symbolem
ze skończonego zbioru symboli
2
3
4
5
6
7
0
1
symbole: {0,1,2,3,4,5,6,7}
3 bity/punkt
Różnicowy kod łańcuchowy
Reprezentacją każdego punktu jest różnica (binarna) pomiędzy
dwoma kolejnymi symbolami. Zbiór wartości różnic jest również
8-elementowy {0, ±1, ±2, ±3, 4}. Lecz prawdopodobieństwo
ich pojawienia się nie jest takie same. Można zatem użyć kodu o
zmiennej długości.
SYMBO
L
0
+1
-1
+2
-2
+3
-3
4
2
3
4
5
6
7
0
1
KOD
0
01
011
0111
01111
011111
011111
1
011111
11
Taki sposób kodowania wymaga średnio nie więcej niż dwóch
bitów na punkt. Przykładowo:
- znak alfanumeryczny: 1.8 – 1.9 bita/punkt
- okrąg o promieniu 1:
2.3 bita/punkt
KLASA 4
Punkty i funkcje
klasa najczęściej wykorzystywana w
grafice komputerowej
obraz reprezentowany jest przez
współrzędne punktów i funkcje
punkty charakterystyczne połączone
są liniami prostymi lub krzywymi
opisanymi przez funkcje
różnorodność funkcji i metod
opisujących kształt generowanych
obiektów
Przekształcenia obrazów
Z klasy niższej do klasy wyższej
Klasa 1 w 2:
segmentacja obrazu - identyfikacja obszarów gdzie
barwa, nasycenie koloru lub jasność są jednolite
Klasa 2 w 3:
znajdowanie konturów
szkieletowanie obrazu
w pierwszym przypadku obszar jest odwzorowany w
krzywą zamkniętą a w drugim w obraz zwany szkieletem
obszaru
Klasa 3 w 4:
segmentacja krzywych - znajdowanie punktów
charakterystycznych na krzywych lub szkielecie oraz
funkcji opisujących przebieg linii pomiędzy tymi
punktami
Z klasy wyższej do klasy niższej
Klasa 4 w 3:
modelowanie krzywych - metody
interpolacyjne lub aproksymacyjne
Klasa 3 w 2:
rasteryzacja
Klasa 2 w 1:
dodawanie kolorów (renderowanie)
wypełnianie – kolor obszaru jednolity
cieniowanie – obszar niejednolity, nasycenie,
jasność i barwa zmieniają się zgodnie z przyjętą
zasadą
Przekształcenia z klasy niższej do wyższej:
rozpoznawanie obrazu
Przekształcenia z klasy wyższej do niższej:
grafika komputerowa
Przekształcenia obrazów 3D na 2D:
rzutowanie (rzut perspektywiczny, rzut równoległy)
Przekształcenia obrazów 2D na 3D:
reprojekcja lub rekonstrukcja
Przekształcenia w ramach klas:
filtrowanie, translacja, skalowanie, obrót
Segmentacja obrazu
Identyfikowanie obszarów obrazu, których
wygląd jest dla obserwatora jednolity
identyfikowanie oznacza jednoznaczne
ustalenie do jakiego obszaru (składowej
pierwotnej) należy dany punkt obrazu;
obszary obrazu są to składowe pierwotne
obrazu, mogą nimi być: płaszczyzny o
zdefiniowanych kształtach, krawędzie, kontury
itp.;
jednolitość może być definiowana na różne
sposoby (poziom jasności, barwa, nasycenie
koloru, tekstura itp.).
Kryteria oceny algorytmów segmentacji
złożoność obliczeniowa;
zajętość pamięci;
dokładność znajdowania granic obszarów;
wierność względem obrazu oryginalnego.
Klasy algorytmów segmentacji (podział ze względu na
metodę)
segmentacja przez progowanie
segmentacja przez wykrywanie krawędzi
segmentacja przez rozrost obszaru
Segmentacja jest jednym z najbardziej intensywnie
rozwijanych zagadnień w procesie rozpoznawania obrazu
i widzenia komputerowego.
Segmentacja przez progowanie
Wartość jasności każdego elementu obrazu
(piksela) jest porównywana z wartością progową
Element jest przydzielany do jednej z dwóch
kategorii: o wartości progowej przekroczonej lub
nieprzekroczonej (binaryzacja obrazu)
Wyboru wartości progowej dokonuje się na
podstawie histogramu.
Problemy:
konieczność doboru wartości progowej;
brak przestrzennej relacji z sąsiedztwem;
mała przydatność w segmentacji obrazów kolorowych.
Przykład:
Obraz oryginalny wraz z histogramem rozkładu poziomów
jasności
Obraz po segmentacji. Wartość progowa T=100
Segmentacja przez wykrywanie
krawędzi
Krawędzie między obszarami wykrywane są poprzez
filtrowanie obrazu z wykorzystaniem operatora detekcji
krawędzi. Najczęściej stosowane operatory to:
filtr Sobela;
filtr Prewitta;
operator Laplace’a;
gradient w kierunku poziomym lub pionowym.
Elementy obrazu, których wartość po filtrowaniu przekroczy
wartość progową kwalifikowane są jako punkty należące do
krawędzi.
Ostatnim etapem metody jest połączenie punktów
zidentyfikowanych jako krawędź w celu uformowania krzywej
zamkniętej otaczającej obszar.
Problemy:
dobór operatora wykrywania krawędzi;
duża podatność na szumy;
słaba wykrywalność rozmytych granic pomiędzy obszarami.
Przykład:
Wartość progowa T=64
Wartość progowa T=100
Krawędzie wykryte w wyniku działania operatora
detekcji krawędzi po progowaniu z różnymi
wartościami progowymi
Segmentacja przez rozrost
obszaru
Metody segmentacji przez progowanie i wykrywanie krawędzi zajmują
się różnicami między wartościami elementów obrazu. W metodzie
segmentacji przez rozrost obszaru działa się w przestrzeni obrazu
poszukując grup elementów o zbliżonej wartości.
Najprostsza postać metody to rozpoczęcie algorytmu od jednego
arbitralnie dobranego elementu obrazu (ziarna) i sprawdzanie czy
piksele przylegające (sąsiadujące) mają podobną jasność – spełniają
test jednolitości. Jeżeli tak, to są one grupowane w obszar. Następnie
sprawdzane są kolejne sąsiadujące piksele. W ten sposób powstają
coraz większe, rozrastające się obszary.
W bardziej złożonym algorytmie działanie rozpoczyna się nie od
pojedynczych pikseli ale od podziału całego obrazu na zbiór małych
obszarów. Następnie dla każdego obszaru stosuje się test jednolitości.
W razie negatywnego wyniku obszar jest dzielony na mniejsze
podobszary. Proces ten jest powtarzany tak długo, aż wszystkie
obszary będą jednolite.
Kodowanie informacji obrazowej
Metody:
Kodowanie różnicowe DPCM (Differential Pulse Code Modulation)
Kodowanie transformacyjne
Karhuena-Loeve’go
Hadamarda
DCT
Interpolacja i ekstrapolacja
próbkowanie podnyquistowskie
próbkowanie przestrzenne
próbkowanie czasowe
Kodowanie statystyczne
Huffmana
Shannona-Fano
Inne metody
kodowanie krawędzi
kodowanie o zmiennej długości słów
kodowanie płaszczyzn
Metody hybrydowe
Metody kodowania można podzielić na:
stałe i przystosowujące się (parametry
kodowania stałe lub nie)
stratne i bezstratne
realizowane w czasie rzeczywistym lub
nie
Parametry kompresji
1. Stopień kompresji
gdzie:
N – zajętość pamięci obrazu oryginalnego
M – zajętość pamięci obrazu po kompresji
2. Czas kompresji i dekompresji
M
N
K
Parametry kompresji
3. Jakość kompresji
gdzie:
X
ij
– wartość i-tego piksela na j-tej linii obrazu oryginalnego
X’
ij
– wartość i-tego piksela na j-tej linii obrazu odtworzonego
N
1
– liczba linii w obrazie
N
2
– liczba pikseli na linii
B – maksymalna wartość piksela (np. przy 8 bit/pixel – B=255)
PSNR [dB] - stosunek sygnału użytkowego do szumu
(ang. Peak Signal to Noice Ratio)
2
1
2
2
1
1
10
)
'
(
log
10
2
N
N
B
X
X
PSNR
ij
N
i
N
j
ij
i
Kodowanie różnicowe
a) rozkład gęstości prawdopodobieństwa
b) rozkład gęstości
prawdopodobieństwa
wartości pikseli
różnic między kolejnymi
pikselami
x
x
ma
x
x
min
p(
x)
p(
x)
x
x
ma
x
x
min
Kodowanie różnicowe
Kolejne kroki:
1. Kwantyzacja - określenie nowych przedziałów kodowania
a) wyznaczenie liczby nowych przedziałów (stopień kompresji)
b) wyznaczenie granic przedziałów – granice wyznaczane są na podstawie rozkładu
gęstości p-stwa różnic między
kolejnymi pikselami (zmienne długości przedziałów)
gdzie:
p(x) – funkcja gęstości prawdopodobieństwa
[x
i
– x
i+1
] – przedział kodowania
Liczba bitów/piksel
8 b/piksel
Liczba nowych
przedziałów
128
64
32
16
Stopień kompresji
1:2
1:4
1:8 1:16
1
)
(
i
i
x
x
const
dx
x
p
Kodowanie różnicowe
2. Przydział wartości wyjściowych dla przedziałów
kodowania
a) minimalizacja wariancji między obrazem
oryginalnym
a odtworzonym (metody przystosowujące się)
b) wartości stałe uśrednione
3. Kodowanie wartości wyjściowych
a) kody o stałej długości
b) kody o zmiennej długości
Kodowanie transformacyjne
Kolejne kroki:
1. Określenie rodzaju transformacji
2. Określenie szerokości transformacji
(np.16 pikseli)
3. Określenie przestrzeni transformacji:
liniowa (wzdłuż wiersza lub kolumny obrazu)
prostokątna (pole obrazu o wymiarach KxL)
4. Transformacja obrazu zgodnie z
przyjętymi parametrami
Przykład – transformacja DCT
5. Skalowanie produktów transformacji
6. Wybór transformant do kodowania
7. Kodowanie produktów transformacji
a) kodowanie proste
b) kodowanie różnicowe
kody o stałej długości
kody o zmiennej długości
Szerokość
transformacji
16
64
Liczba transformant
16
64
Liczba transformant
do zakodowania
8
4
2
8
4
2
Stopień kompresji
1:2 1:4 1:8 1:8 1:1
6
1:3
2
Wartości współczynników transformacji
DCT
Grafika wektorowa
Grafika wektorowa: sposób opisu obrazu oparty
na formułach matematycznych. Zachowuje
informacje o tworzących kształty obiektów liniach
i krzywych
stała jakość obrazu niezależnie od tego, w jakiej skali
zostanie on wyświetlony;
mniejsza w porównaniu z formatami zapisu rastrowego
(JPG, BMP, GIF) wielkość plików zarówno w przypadku
statycznych obrazów jak i animowanych;
większa kontrola nad kształtem i położeniem
modelowanych obiektów;
możliwość modyfikacji poszczególnych obiektów obrazu
niezależnie od pozostałych.
Programy do tworzenia grafiki
wektorowej:
Adobe Ilustrator
Corel Draw
Deneba Canvas
Creature House Expresion
Macromedia Freehand
Xara
Micrograf Designer
Formaty zapisu grafiki wektorowej:
EPS (Encapsulated Postscript)
WFM (Windows Metafile)
CDR (Corel Draw)
DRW (Micrograf Designer)
VPF (Vector Product File)
DXF (programy CAD)
HPGL (plotery)
Urządzenia grafiki wektorowej: (plotery,
grafoskopy, monitory wektorowe)
urządzenia realizujące grafikę wektorową
wykorzystują 3 i 4 klasę danych obrazowych;
rozkazy elementarne:
p(x,y) - ustaw plamkę świetlną (rysującą) w
punkcie (x,y)
s(z) – ustaw jasność (kolor) zgodnie z wartością z
sekwencja rozkazów (S) odpowiada za wyświetlenie
(narysowanie) pojedynczego obiektu;
Program sterujący wyświetlaniem obrazu na
lampie CRT:
start: S1, S2, . . . , Sn - sekwencje rozkazów
S1;
S2;
. . . . ;
Sn;
if brak przerwania then go to start
else zmień sekwencję go to start;
end.
W celu modyfikacji obrazu należy zmienić odpowiednią
sekwencję rozkazów. Zmiana obrazu sygnalizowana jest
poprzez przerwanie. Wykonanie pojedynczej pętli odpowiada
za odnowienie (odświeżenie) zawartości ekranu. Częstotliwość
odświeżania jest odwrotnie proporcjonalna do długości pętli.
Jeżeli czas wykonania pętli jest dłuższy od czasu fluorescencji
(poświaty) ekranu to występuje zjawisko migotania i rozmycia
ekranu. Stąd istnieje górna granica długości pętli a tym
samym złożoności wyświetlanego obrazu.
czas fluorescencji: 0.02 - 0.05 sek
częstotliwość odświeżania: 20 – 50 razy/sek.
rozdzielczość 4096x4096
zobrazowanie monochromatyczne o poświacie białej, zielonej lub
czerwonej;
lampy pamięciowe: brak ograniczeń na złożoność wyświetlanego
obrazu.
Grafika rastrowa (bitmapowa)
Obrazy tworzone są z położonych regularnie obok siebie pikseli. W
pikselach zawarta jest informacja o kolorze lub o jasności (obrazy
monochromatyczne) danego punktu obrazu.
Mapa bitowa (ang. bit map): sposób zapamiętania obrazu przy
wykorzystaniu pikseli ułożonych w rzędy i kolumny. Każdy piksel
jest opisany za pomocą określonej liczby bitów. Najczęściej
wykorzystywane są mapy:
1-bitowe: obrazy biało-czarne (binarne);
8-bitowe: możliwość uzyskania 256 kolorów lub odcieni szarości;
16-bitowe: 65 536 kolorów
24-bitowe: True Color (16 777 216 kolorów)
Rozdzielczość obrazu rastrowego:
rozdzielczość liniowa: liczba pikseli przypadająca na
jednostkę powierzchni;
rozdzielczość w przestrzeni kolorów: liczba bitów
opisująca pojedynczy piksel;
Im wyższa jest rozdzielczość obrazu, tym większy jest jego
plik. Wielkość pliku opisującego obraz można wyznaczyć z
zależności:
W = K * L * P
gdzie:
W – wielkość pliku wyrażona w bajtach
K - liczba pikseli w pionie;
L - liczba pikseli w poziomie;
P - liczba bajtów opisująca piksel
Programy do edycji i przetwarzania map bitowych
(do retuszu i obróbki zdjęć): umożliwiają tworzenie
rysunków od podstaw lub modyfikację już istniejących,
powstałych w wyniku skanowania gotowych rysunków
lub zdjęć bądź też wprowadzanych z urządzeń cyfrowych
(aparaty cyfrowe, urządzenia do akwizycji obrazu).
Photoshop
Corel PhotoPaint
Picture Publisher
Formaty zapisu grafiki rastrowej:
BMP
JPEG
GIF
TIFF
Urządzenia grafiki rastrowej: (drukarki, skanery,
monitory rastrowe)
urządzenia realizujące grafikę rastrową wykorzystują 1 i 2
klasę danych obrazowych;
urządzenia posiadają integralną pamięć (pamięć graficzna,
pamięć ekranu);
pojedyncza komórka pamięci przechowuje atrybuty
pojedynczego adresowalnego punktu obrazu;
rozkazy elementarne:
read(I,x,y,z) – czytaj komórkę pamięci I o adresie (x,y)
oraz
określ z na podstawie
zawartości I;
write(x,y,z) –
pisz w punkcie o współrzędnych (x,y)
wartość
jasności (koloru) określoną
przez z.
Program sterujący wyświetlaniem (drukowaniem)
obrazu:
start:
for I:=1 to ilość pikseli do
begin
read(I,x,y,z);
write(x,y,z);
end;
go to start;
end.
Pojęcia związane z urządzeniami grafiki
rastrowej:
częstotliwość odświeżania (odczytu pamięci
ekranu): 50-100 Hz;
pasmo przenoszenia sygnału wizji VBW (ang.
Video Band Width);
synchronizacja pionowa i pozioma VSYNC,
HSYNC;
pamięć graficzna, pamięć ekranu (obrazu);
stronicowanie pamięci graficznej;
system okien, atrybuty okna.
Porównanie grafiki rastrowej i
wektorowej
Różnice między grafiką wektorową a grafiką rastrową
są szczególnie widoczne podczas skalowania (zmiany
rozmiaru) rysunku lub obiektu.
Przykład: powiększenie rysunku – powiększenie 700%
grafika
rastrowa
grafika
wektorowa
Wektorowa literka "a" nie straciła nic ze swojej
jakości.
Utrata jakości w rysunku rastrowym. Rzucające się w oczy duże
punkty oraz postrzępiona linia. W rysunku rastrowym odcinek jest
zapamiętany z określonej liczby punktów, po powiększeniu punkty
stają się duże, a jest ich tyle samo. W rysunku wektorowym
odcinek jest zapamiętywany jako zbiór dwóch punktów
(początkowy i końcowy) o określonych współrzędnych.
grafika rastrowa
grafika wektorowa
Przykład: powiększenie rysunku
Przykład: pomniejszenie rysunku do 1/3
rozmiaru
Rysunek wektorowy nie uległ pogorszeniu. W przypadku rysunku
rastrowego literka "a" wygląda dobrze dlatego, że oryginalna
literka jest „gruba”. Znacznie gorzej wygląda elipsa i odcinek,
które były „cienkie”. Przy pomniejszaniu zostało "zgubionych"
wiele punktów.
grafika rastrowa
grafika wektorowa
Przykład: zdjęcia
Jakość zdjęć rastrowych jest najlepsza gdy są w oryginalnych
rozmiarach. Po skalowaniu tracą na jakości, nie można rozróżnić
szczegółów.
W grafice wektorowej nie można przedstawić zdjęcia, gdyż takich
nie można zrobić. W technice wektorowej wszystko musi być
narysowane przy użyciu takich obiektów jak okrąg, odcinek,
punkt, wielokąt.
grafika rastrowa
grafika wektorowa
Rysunek został
utworzony
z 6254 obiektów