y - student

Transkrypt

y - student
Cyfrowe przetwarzanie obrazów I
Obraz jako funkcja
Przekształcenia geometryczne
dr. inż Robert Kazała
Definicja obrazu
●
●
Obraz ⇒ dwuwymiarowa funkcja intensywności światła
f(x,y); wartość f w przestrzennych współrzędnych x,y
określa intensywność (jasność) obrazu w tym punkcie,
gdzie: 0 < f(x,y) < ∞
Dyskretyzacja obrazu ⇒ dyskretyzacja funkcji f(x,y):
●
przestrzenna (próbkowanie obrazu)
●
amplitudowa (kwantyzacja poziomu szarości)
Definicja obrazu cyfrowego
●
Obraz cyfrowy rozumiemy jako dwuwymiarową funkcję
dyskretną g(x,y) taką, że jej argumentami są dyskretne
piksele, a wartościami intensywności kolorów, np. w
przestrzeni RGB, trójki liczb z przedziału [0,255].
Obraz jako funkcja dwuwymiarowa
Poziomy przekrój obrazu
Pionowy przekrój obrazu
Rozdzielczość przestrzenna obrazu
Powstawanie obrazu cyfrowego
●
●
Pozyskiwanie obrazu w formie cyfrowej (kamery cyfrowe,
skanery)
Matryce światłoczułe(głównie CCD lub CMOS)
●
●
− złożone, 3 kolory na 1 chipie, tańsze
− monochromatyczne (po rozdzieleniu kolorów), droższe,
wyższa jakość obrazu
Reprezentacja koloru
●
●
●
Każdy z elementów dyskretnej reprezentacji obrazu może
przyjmować tylko jeden z pośród ograniczonej ilości
stanów.
Ilość ta popularnie zwana ilością kolorów, może być także
w komputerowej reprezentacji obrazu interpretowana jako
ilość bitów przeznaczonych na zapamiętanie stanu
jednego elementu (bpp – bits per pixel).
Najpopularniejsze formaty
●
binarny – 1 bpp – 2 kolory
●
monochromatyczny – 8 bpp – 256 stopni szarości
●
kolorowy – 24 lub 32 bpp – ok. 17 milionów odcieni kolorów
Typy obrazów
kolorowy
monochromatyczny
binarny
Obrazy indeksowane
●
●
Nie zawsze wszystkie kolory są potrzebne
Ze względu na objętość obrazu używa się palety – tablicy
kolorów użytych w obrazie, ponumerowanych i w pełnej
formie
●
Obraz zawiera wtedy ich indeksy w palecie
●
Palety można wymieniać bez ingerencji w sam obraz
Podział algorytmów przetwarzania obrazów
●
Przekształcenia geometryczne
●
Przekształcenia punktowe (bezkontekstowe)
●
Przekształcenia kontekstowe (filtry konwolucyjne, logiczne,
medianowe)
●
Przekształcenia widmowe
●
Przekształcenia morfologiczne
Przekształcenia geometryczne
●
●
Na przekształcenia geometryczne składają się:
●
przesunięcia,
●
obroty,
●
odbicia,
●
inne transformacje geometrii obrazu.
Przekształcenia te wykorzystywane są do korekcji błędów
wnoszonych przez system wprowadzający oraz do
operacji pomocniczych
Przesunięcie
●
Przesunięcie (translacja) obrazu realizowana jest przez
dodanie stałej do każdej współrzędnej, co w postaci
macierzowej można przedstawić równaniem
[ ][][]
x' = x  t x
y'
y
ty
Skalowanie
●
Skalowanie polegające na zmianie rozmiaru obrazu
względem początku układu współrzędnych w postaci
macierzowej można opisać zależnością
[ ][
][ ]
x' = sx 0 x
y'
0 sy y
●
●
Współczynnik skalowania s jest zwiększjący, jeżeli |s| > 1,
a zmniejszający, jeżeli |s| < 1. Jeżeli sx = sy, to skalowanie
nazywamy jednorodnym,a jeżeli sx ≠ sy niejednorodnym.
Przy skalowaniu niejednorodnym proporcje skalowanego
obiektu zmieniają się, natomiast przy skalowaniu
jednorodnym proporcje nie ulegają zmianie.
Obrót
●
Obrót wokół początku układu współrzędnych o kąt φ
można wyrazić w postaci macierzowej następująco
[ ][
x ' = cos  −sin 
y'
sin  cos 
●
][ ]
x
y
W celu wykonania obrotu względem innego punktu niż
początek układu współrzędnych należy
1. Wykonać przesunięcie płaszczyzny, aby punkt obrotu
znalazł się w początku układu współrzędnych.
2. Dokonać obrótu wokół nowego początku układu
współrzędnych o kąt φ.
Współrzędne jednorodne
●
●
●
●
Obiekty na płaszczyźnie mogą być przekształcane przez
zastosowanie transformacji takich jak przesunięcia,
skalowaania, obroty.
Składanie transformacji polega na dodawaniu i mnożeniu
odpowiednich macierzy.
Złożenie obrotów i skalowań otrzymujemy przez mnożenie
macierzy, natomiast przesunięciom odpowiada dodawanie
wektora.
Widoczna jest zatem pewna niedogodność, związana z
tym, że nie można każdego przekształcenia przedstawić w
postaci jednej macierzy (ponieważ przesunięcie jest
realizowane inaczej niż skalowanie i obrót).
Współrzędne jednorodne
●
●
Żeby móc traktować wszystkie trzy przekształcenia w
jednakowy sposób i umożliwić realizację dowolnego
przekształcenia przez mnożenie macierzy należy
zastosować alternatywny układ współrzędnych, w którym
dowolne przekształcenie daje się opisać jako mnożenie
przez macierz o wymiarach 3x3.
Przekształcenie takie można opisać w sposób macierzowy
zależnością
[ ][
][ ]
a1 b1 c 1 x
x'
L  x , y = y ' = a 2 b2 c 2 y
1
0 0 1 1
Współrzędne jednorodne
●
Poszczególne współrzędne po wyliczeniu mają postać
x '=a 1 xb1 yc 1
y ' =a 2 xb 2 yc 2
●
Z zależności widać, że w zależności od doboru
współczynników macierzy można wykonywać zarówno
translacje jak i obroty oraz skalowania.
Transformacje 2D we współrzędnych jednorodnych
●
Przesunięcie
[ ]
1 0 tx
T t x , t y = 0 1 t y
0 0 1
●
Skalowanie względem początku układu współrzędnych
[ ]
sx 0 0
S  s x , s y = 0 s y 0
0 0 1
Transformacje 2D we współrzędnych jednorodnych
●
Obrót wokół początku układu współrzednych
[
cos  −sin  0
R= sin  cos  0
0
0
1
●
]
Skalowanie względem dowolnego punktu x0, y0
[
sx 0
S  x y   s x , s y = 0 s y
0 0
0,
0
x 0 1−s x 
y 0 1−s y 
1
]
Transformacje 2D we współrzędnych jednorodnych
●
Obrót wokół dowolnego punktu
[
cos  −sin  −x 0 cos  y0 sin x 0
R x y  = sin  cos  −x0 sin  y 0 cos  y0
0
0
1
0,
0
]
Przykłady przekształceń
Transformacje geometryczne - problemy
●
Transformacje geometryczne realizowane na prostokątnej
siatce punktów polegają na wyznaczeniu punktu na
obrazie wynikowym do którego kopiowana jest wartość
koloru
Transformacje geometryczne - problemy
●
W przypadku niektórych przekształceń, nie wszystkie
punkty obrazu wynikowego będą wypełnione nową
wartością koloru
Transformacja odwrotna
●
●
W celu wyeliminowania problemu związanego z nie
wypełnieniem kolorami wszystkich punktów w obrazie
wynikowym, stosuje się transformację odwrotną, która
przekształca współrzędne punktów z obrazu wynikowego we
współrzędne punktów obrazu źródłowego.
Opisuje to zależność
[] [ ]
x
x'
−1
y =M
y'
1
1