Transcript gobr-12-05

Geometria obrazu
Wykład 5
1. Podział obrazu c.d.
Metoda progowa
2. Histogramy
3. Modele barw
Załóżmy, że mamy dany obraz w różnych odcieniach szarości.
Segmentacja przez progowanie polega na określeniu pewnej wartości progowej T (w skali intensywności obrazu), względem której każdy element
piksel obrazu jest przydzielany do jednej z dwóch kategorii – obiekt lub tło.
Otrzymujemy funkcję
1 dla f ( x, y)  T
g ( x, y)  
0 dla f ( x, y)  T
W zależności od potrzeb obiekt (tło) odpowiadają punktom o wartości 1 lub 0.
Aby operacja progowania miała sens, piksele obiektu muszą mieć inny zakres
intensywności niż tło.
Progi możemy definiować na różne sposoby.
Mówimy o progu globalnym, gdy wartość progu jest ustalana na podstawie
całego obrazu .
Gdy wartość progu zależy od współrzędnych przestrzennych (x,y) obrazu to
mówimy, że próg jest ustalany dynamicznie .
Gdy próg zarówno zależy od intensywności obrazu oraz jego pewnej cechy
p(x,y), to próg nazywamy lokalnym. Ma to zastosowanie np. gdy obraz jest
nierównomiernie oświetlony (wtedy p(x,y) odpowiada średniej jasności obrazu
w danym otoczeniu).
Przykład.
Progowanie lokalne z maska Gaussa.
X
[www.ii.uj.edu.pl/~rakowski/TOM_prezentacja.ppt]
W adaptacyjnym progowaniu wieloprzebiegowym w każdym kroku pewne
piksele są klasyfikowane na podstawie ich wartości oraz progu obliczonego na
podstawie wartości pikseli z pewnego zdefiniowanego otoczenia. Pozostałe,
niesklasyfikowane piksele przechodzą do następnego etapu. Algorytm kończy
działanie, gdy wszystkie piksele obrazu zostaną sklasyfikowane.
Przykład.
Lokalny próg dla piksela (x,y) może być liczony według wzoru txy = mxy + vxy,
gdy vxy > vmin, gdzie m oznacza wartość średnią a v wariancję. Jeśli vxy < vmin,
to wartość progu txy jest równa wartości progu dla poprzednio przetwarzanego
piksela.
Praktycznym problemem dającym się rozwiązać przy pomocy progowania
adaptacyjnego jest sytuacja, w której na szukany obiekt pada intensywny
refleks światła, co czyni jego barwę nieregularną z punktu widzenia kamery.
W takim przypadku dobór pojedynczego progu może być niewystarczający.
Przykład.
[http://www.ee.pw.edu.pl/~czajewsw/studenckie/magisterskie/Daniel_Chade.pdf]
Niekoniecznie musi być dokładnie jeden próg.
Przy progowaniu wielopoziomowym wartości odpowiednich poziomów
progowania są elementami wektora T=[T1, T2,..., Tn]. W jego wyniku obraz
podlega segmentacji na n+1 obszarów o różnych intensywnościach, np.
progowanie dwupoziomowe wyznacza trzy takie obszary:
0 dla

g ( x, y )  1 dla
0 dla

f ( x, y )  T 1
T
 f ( x, y )  T 2
T 2  f ( x, y )
1
[aragorn.pb.bialystok.pl/~boldak/DIP/CPO-W07-v01-50pr.pdf]
Ten sam algorytm z różnymi progami będzie (zazwyczaj) określał inne
obszary.
Jak zatem można określać progi , aby wynik był zgodny z naszymi
oczekiwaniami?
1.
2.
Ręcznie (interaktywnie).
Automatycznie.
Określenie właściwego progu jest skomplikowanym problemem, na którego
rozwiązanie może mieć wpływ np. średnia intensywność szukanego obiektu i
tła, ich rozmiary itp..
Histogram.
Histogram to jeden z graficznych sposobów przedstawiania danych
statystycznych. Składa się z szeregu prostokątów umieszczonych na osi
współrzędnych.
Prostokąty te są z jednej strony wyznaczone przez przedziały klasowe (zakresy
zmian) wartości cechy, natomiast ich wysokość jest określona przez
liczebności (częstości, gęstość elementów wpadających do określonego
przedziału klasowego.
[songho.ca]
Progowanie z pomocą histogramu.
Często histogram obrazu wykazuje maksima dla częstości o pewnych
intensywnościach.
Granice odpowiednich otoczeń tych maksimów mogą służyć za progi.
Duża amplituda wahań histogramu wskazuje na dobrą separowalność
pewnych obiektów.
Duża częstotliwość zmian histogramu umożliwia podział obrazu na wiele
obiektów.
Przykład.
[aragorn.pb.bialystok.pl/~boldak/DIP/CPO-W07-v01-50pr.pdf]
Automatyczne wyznaczanie progów.
Metoda geometryczna.
1. Wygładzamy histogram, aby pozbyć się ekstremów będących wynikiem
szumów.
2. Wyznaczamy lokalne maksima histogramu .
Gdy maksima leżą zbyt blisko siebie możemy je uwspólnić.
3. Wyznaczamy środki dolin między maksimami.
W tym celu wybieramy lokalne minima lub przybliżamy doliny z pomocą
krzywych drugiego stopnia.
Gdy znamy funkcję opisującą rozkład intensywności pikseli obrazu, możemy
przybliżyć histogram z pomocą rodziny takich funkcji i zastosować powyższą
metodę .
Progowanie obrazów barwnych.
Aby lepiej wybrać barwę należy progować wiele kanałów.
Model HSV lepiej się sprawdza od modelu RGB.
[aragorn.pb.bialystok.pl/~boldak/DIP/CPO-W07-v01-50pr.pdf]
RGB
Nazwa powstała ze złożenia pierwszych liter angielskich nazw barw
(czerwonej, zielonej i niebieskiej), z których model ten się składa. Jest to
model wynikający z właściwości odbiorczych ludzkiego oka, w którym
wrażenie widzenia dowolnej barwy można wywołać przez zmieszanie w
ustalonych proporcjach trzech wiązek światła o tych barwach.
Do przestrzeni RGB ma zastosowanie synteza addytywna, w której wartości
najniższe oznaczają barwę czarną, najwyższe zaś białą.
Najczęściej stosowany jest 24-bitowy zapis kolorów (po 8 bitów na każdą z
barw składowych), w którym każda z barw jest zapisana przy pomocy
składowych, które przyjmują wartość z zakresu 0-255. W modelu RGB
wartość 0 wszystkich składowych daje kolor czarny, natomiast 255 - kolor
biały. W rzadszych przypadkach stosuje się model, w którym przypada po 12
lub 16 bitów na każdą ze składowych, co daje dużo większe możliwości przy
manipulowaniu kolorem.
Przykłady.
Mieszanie addytywne.
Model RGB.
[portaldtp.pl]
[http://pl.wikipedia.org/wiki/Synteza_addytywna]
HSV
HSV (ang.Hue Saturation Value) – model opisu przestrzeni barw
zaproponowany w 1978 roku przez Alveya Raya Smitha.
Model HSV nawiązuje do sposobu, w jakim widzi ludzki narząd wzroku,
gdzie wszystkie barwy postrzegane są jako światło pochodzące z oświetlenia.
Według tego modelu wszelkie barwy wywodzą się ze światła białego, gdzie
część widma zostaje wchłonięta a część odbita od oświetlanych przedmiotów.
Symbole w nazwie modelu to pierwsze litery nazw angielskich dla składowych
opisu barwy: H – odcień światła (ang. Hue) wyrażona kątem na kole barw
przyjmująca wartości od 0° do 360°. Model jest rozpatrywany jako stożek,
którego podstawą jest koło barw.
Wymiary stożka opisuje składowa S – nasycenie koloru (ang. Saturation) jako
promień podstawy oraz składowa V – (ang. Value) równoważna nazwie B –
moc światła białego (ang. Brightness) jako wysokość stożka.
Przyporządkowanie częstotliwości fal świetlnych na kole barw w modelu HSV
jest takie samo jak w modelach HSL , tzn. centrum barwy czerwonej
odpowiada kąt 0° lub 360°. Centrum barwy zielonej odpowiada kąt 120°.
Centrum barwy niebieskiej odpowiada kąt 240°. Pozostałe barwy pośrednie
dla składowej Hue są odpowiednio rozłożone pomiędzy kolorami czerwonym,
zielonym i niebieskim.
[http://pl.wikipedia.org/wiki/HSV_(grafika)]
[scien.stanford.edu]
TRGB = record red : byte;
green : byte;
blue : byte;
end;
THSV = record hue : word; // przyjmuje wartości od 0 do 239
saturation : byte; // przyjmuje wartości od 0 do 240
value : byte; // przyjmuje wartości od 0 do 240 end;
// Jako parametr funkcji podajemy wypełniony rekord typu TRGB, funkcja zwraca wypełniony rekord typu THSV.
function KonwertujRGBnaHSV(RGB : TRGB) : THSV;
var temp : integer;
begin temp := MIN(MIN(RGB.red, RGB.green), RGB.blue);
// Obliczanie składowej Value
Result.value := MAX(MAX(RGB.red, RGB.green), RGB.blue);
// Zmienna TEMP jest teraz najmniejszą składową, a zmienna Result.value największą składową
// Obliczanie składowej HUE
if temp = Result.value then Result.hue := 0
else begin if RGB.red=Result.value then Result.hue := 0 + ((RGB.green-RGB.blue)*60 div (Result.value-temp));
if RGB.green=Result.value then Result.hue := 120 + ((RGB.blue-RGB.red)*60 div (Result.value-temp));
if RGB.blue=Result.value then Result.hue := 240 + ((RGB.red-RGB.green)*60 div (Result.value-temp));
end;
if Result.hue<0 then Result.hue := Result.hue+360;
// Obliczanie składowej SATURATION
if (Result.value=0) then Result.saturation := 0
else Result.saturation := (Result.value-temp)*100 div Result.value;
// Obliczanie składowej VALUE
Result.value := (100*Result.value) div 255;
end;
HSL
HSL – to model , w którym każdej barwie postrzeganej przez człowieka jest
przyporządkowany jeden punkt w przestrzeni trójwymiarowej identyfikowany
przez trzy składowe: (h,s,l). Model pojawił się w okresie startu telewizji –
pierwsze demonstracje w latach 1926-1960. Zakresy współrzędnych:
H: Hue – barwa, o wartościach z przedziału: od 0 do 360 stopni.
S: Saturation – nasycenie koloru, z przedziału 0...1 albo 0...100%.
L: Lightness – średnie światło białe, z przedziału 0...1 albo 0...100%.
Model HSL ma znaczenie historyczne i bywa nazywany modelem kolorów dla
artystów.
[http://en.wikipedia.org/wiki/HSL_and_HSV]
RGBA
Ten model czasami jest traktowany jako osobny, jednak w rzeczywistości jest
to tradycyjny model RGB , poszerzony o dodatkowe informacje. Został
opracowany przez grafików Edwina Catmulla, oraz Alvy'ego Raya Smitha w
latach 1971-1972. Umożliwił on wprowadzenie do obrazów obsługi efektu
przezroczystości.
CIELab
CIELab to przestrzeń barw, która została znormalizowana w 1976 przez CIE
(Comission Internationale de l'Eclairage - Międzynarodową Komisję
Oświetleniową). Stanowi ona modyfikację przestrzeni barw L, a , b,
stworzonej przez Huntera w 1948 roku. CIELab stanowi matematyczną
transformację przestrzeni CIEXYZ.
Transformację tę wprowadzono jako wynik badań nad spostrzeganiem przez
oko ludzkie różnicy między barwami. Zakładano, że barwy znajdujące się w
przestrzeni CIELab w jednakowej odległości ΔE od siebie będą postrzegane
jako jednakowo różniące się od siebie. CIELab miała być równomierną
przestrzenią barw. Jednak różnicy percepcyjnej barw nie można jednoznacznie
określić za pomocą ΔE.
Barwę opisują matematycznie trzy składowe: L - jasność, a – barwa od
zielonej do magenty, b – barwa od niebieskiej do żółtej.
Przestrzeń CIEXYZ można przekształcić na przestrzeń barwną CIELab
według związków (X0=94,81, Y0=100, Z0=107,3, są współrzędnymi barwy
ciała nominalnie białego):
CIELab jest obecnie najpopularniejszym sposobem opisu barwy i stanowi
podstawę współczesnych systemów zarządzania barwą. Różnica pomiędzy
dwiema barwami w przestrzeni CIELab ma postać:
i jest zwykłą odległością euklidesową pomiędzy dwoma punktami w
przestrzeni trójwymiarowej.
Można przyjąć, że standardowy obserwator zauważa różnicę barw następująco:
• 0 < ΔE < 1 - nie zauważa różnicy,
• 1 < ΔE < 2 - zauważa różnicę jedynie doświadczony obserwator,
• 2 < ΔE < 3,5 - zauważa różnicę również niedoświadczony obserwator,
• 3,5 < ΔE < 5 - zauważa wyraźną różnicę barw,
• 5 < ΔE - obserwator odnosi wrażenie dwóch różnych barw.
[maggiemaggio.com]
CMYK
Jest to zestaw czterech podstawowych kolorów farb drukarskich stosowanych
powszechnie w druku kolorowym w poligrafii i metodach pokrewnych
(atramenty, tonery i inne materiały barwiące w drukarkach komputerowych,
kserokopiarkach itp.). Na zestaw tych kolorów mówi się również barwy
procesowe lub kolory triadowe.
Ogólnie mówiąc – nie istnieje jednolity system definiowania kolorów z natury
za pośrednictwem kolorów CMYK. Można dokonywać tylko ogólnych
uproszczeń. Pewnego zakresu odcieni nie da się w ogóle uzyskać z powodów
technologicznych, a pozostałe kolory muszą być definiowane składowymi
CMYK z uwzględnieniem wielu czynników jak: biel podłoża, wsiąkliwość
farby, czy cechy farb konkretnego producenta, choć na świecie istnieje kilka
standardów.
[http://pl.wikipedia.org/wiki/CMYK]
Dziękuję za uwagę.