Przetwarzanie obrazu -...
Transcript of Przetwarzanie obrazu -...
Przetwarzanie obrazu
Przetwarzanie obrazu cyfrowego
Przekształcenia geometryczne
•Obroty
•Przesunięcia
•Odbicia
•Rozciągnięcia
•itp
Przetwarzanie obrazu cyfrowego
Przekształcenia geometryczne
• Obroty
• Wielokrotność 90 stopni
• Inne
Przetwarzanie obrazu cyfrowego
Przekształcenia geometryczne
• Obroty
• Wielokrotność 90 stopni
• Inne
Przetwarzanie obrazu cyfrowego
Przekształcenia geometryczne
• Przesunięcia
Przemieszczenie
bloku wartości
kolorów pikseli do
nowego miejsca w
wierszach i
kolumnach obrazu
Przetwarzanie obrazu cyfrowego
Przekształcenia geometryczne
• Odbicia
• Poziome
• Pionowe
odwrócenie
kolejności pikseli w
każdym wierszu.
odwrócenie
kolejności wierszy
obrazu.
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Przekształcenia bezkontekstowe cechują dwie właściwości:
• Punkty obrazu poddawane są przekształceniu niezależnie od
otaczających je punktów - sąsiadów.
• Przekształcane są jedynie wartości punktów (jasność/kolor). Punkty nie
zmieniają pozycji w obrazie.
Z reguły temu samemu przekształceniu poddawane są wszystkie punkty
obrazu.
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Najczęściej polegają na obliczeniu nowej wartości piksela na podstawie
funkcji
),(,' nmLnmL
L(m,n) jest intensywnością (jasnością) obrazu w punkcie (m,n) lub
poziomem wartości jednej ze składowych koloru w tym punkcie
W przypadku obrazów kolorowych funkcja obliczana jest osobno dla
każdej składowej koloru
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Wartości intensywności (składowej koloru) są najczęściej liczbami
całkowitymi między 0 a 255. Przed wykonaniem na nich funkcji L’(m,n) są
one często przeskalowywane do zakresu <0,1>
Nowa wartość piksela, po wykonaniu funkcji, może wykraczać poza
przyjęty zakres <0,1>. Wartości mniejsze od 0 są zamieniane na 0 a
wartości większe od 1 są ustawiane na 1.
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Typowe przekształcenia
Rozjaśnianie / ściemnianie
W tym przypadku funkcja przyjmuje postać:
),(,' nmLnmL
( i mają wartość 1)
Do wartości wszystkich pikseli w obrazie dodawana jest taka sama wartość .
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Typowe przekształcenia
Rozjaśnianie / ściemnianie
Jeżeli jest dodatnia następuje rozjaśnienie obrazu.
Ujemne wartości powodują ściemnienie obrazu.
Im większa jest wartość (ujemna lub dodatnia), tym więcej wartości pikseli
obrazu wykracza poza zakres i jest równanych do 0 lub 1.
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Typowe przekształcenia
Rozjaśnianie / ściemnianie
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Tabela LUT
Zmiana jasności obrazka powyższą metodą
wymagałaby obliczenia wartości funkcji dla każdego
punktu obrazu
W przypadku obrazu kolorowego RGB, 3 x ilość
punktów
Ilości pikseli obrazów liczone są w milionach…
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Tabela LUT
Bardziej efektywną metodą jest policzenie funkcji dla
wszystkich możliwych wartości od 0 do 255 i zapisanie
ich w dwuwierszowej tabeli zawierającą starą i nową
wartość.
LUT (Look Up Table – tabela przeglądania).
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Tabela LUT
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Typowe przekształcenia
Zwiększanie/zmniejszanie kontrastu
Zmiana kontrastu polega na zwiększaniu lub zmniejszaniu różnic pomiędzy
wartościami punktów obrazu. Odbywa się to z wykorzystaniem funkcji w
postaci:
MAXMAXMAX
nmLdlaMAX
MAXMAXMAX
nmLdlaMAXMAX
nmL
MAXMAXnmLdla
nmL
22),(
22),(0
22),(
022
),(0
,'
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Typowe przekształcenia
Zwiększanie/zmniejszanie kontrastu
Dla wartości mniejszej od 1 następuje zmniejszanie kontrastu, czyli
zmniejszenie różnic między poszczególnymi wartościami jaskrawości.
W skrajnym przypadku uzyskamy jednolite szare tło.
Wartość większa od 1 powoduje zwiększenie kontrastu aż do skrajnego
przypadku występowania tylko 2 wartości: 0 i MAX
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Typowe przekształcenia
Zwiększanie/zmniejszanie kontrastu
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Typowe przekształcenia
Korekcja gamma
Korekcja gamma służy do poprawiania zniekształceń jasności wprowadzonych
przez urządzenia takie jak skaner, kamera czy monitor.
MAX
nmLMAXnmL
),(*,'
Wzór jest właściwy
wyłącznie gdy
potęgowane są
wartości z przedziału
<0, 1>, stąd dzielenie i
mnożenie przez
wartość MAX.
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Typowe przekształcenia
Korekcja gamma
Dla wartości mniejszej od 1 następuje rozciągniecie
wartości „ciemnych” kosztem wartości jasnych
Dla wartości większej od 1, odwrotnie.
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Typowe przekształcenia
Zwiększanie/zmniejszanie kontrastu
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Histogram
Histogram jest narzędziem wspomagającym wiele bezkontekstowych
przekształceń obrazu.
Prezentuje on zestawienie (w postaci wykresu słupkowego) procentowej ilości
w obrazie pikseli o jednakowych poziomach jasności.
Słupki odpowiadające poziomom ułożone są w kolejności rosnącej od poziomu
0 do MAX.
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Histogram
W przypadku obrazów kolorowych histogram może być generowany
albo dla każdej składowej z osobna albo jako histogram obrazu
skonwertowanego do monochromatycznego.
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Histogram
Histogram prawidłowo naświetlonego obrazu powinien być mniej więcej
równomierny. Przesunięcie „ciężaru” na lewą lub prawą połowę może
świadczyć o niedoświetleniu lub prześwietleniu obrazu.
Źródło: http://www.cleanimages.com/Article-UnderstandingYourDigitalCamerasHistogram.asp
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Histogram Obraz nie zawsze wykorzystuje cały dostępny zakres jaskrawości
Można wykonać rozciągniecie histogramu uzyskując zwiększenie „dystansu”
między poszczególnymi stopniami jasności.
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Histogram Obraz nie zawsze wykorzystuje cały dostępny zakres jaskrawości
Można wykonać rozciągniecie histogramu uzyskując zwiększenie „dystansu”
między poszczególnymi stopniami jasności.
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Krzywe
Częstym przypadkiem jest sytuacja gdy globalna korekcja bezkontekstowa
obrazu (jasność, kontrast, gamma, itp) poprawia pewien obszar obrazu
pogarszając jednocześnie inny
W takiej sytuacji konieczne jest wykorzystanie narzędzia pozwalającego na
precyzyjne ustawienie korekcji dla różnych obszarów jasności.
Takim narzędziem są Krzywe (ang. Curves) będące kombajnem pozwalającym
na jednoczesne wykorzystanie wszystkich korekcji
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Krzywe
Okno narzędzia „krzywe” zawiera
prostokąt przedzielony ukośną linią.
Na dole prostokąta zaprezentowany
jest zakres jasności obrazu
oryginalnego od 0 do MAX. Po lewej
stronie prostokąta przedstawiony jest
analogiczny zakres jasności dla
obrazu po przekształceniu.
Często w tle prostokąta
przedstawiany jest histogram obrazu
oryginalnego, ułatwiający dobór
kształtu krzywej.
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Krzywe
Ukośna linia reprezentuje
przekształcenie jednego zakresu w
drugi
W swojej obecnej postaci pokazuje
przekształcenie 1:1, czyli bez zmian
Zaznaczone na zielono zakresy
jasności przed i po transformacji
mają tą samą szerokość
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Krzywe – realizacja rozjaśniania
Linia została „przesunięta”
w górę
Gęstość rozłożenia stopni
jasności jest taka sama
Zakres stopni jasności jest
przesunięty w stosunku do
oryginału w stronę większej
jasności.
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Krzywe – realizacja ściemniania
Linia została „przesunięta”
w dół
Gęstość rozłożenia stopni
jasności jest taka sama
Zakres stopni jasności jest
przesunięty w stosunku do
oryginału w stronę
mniejszej jasności.
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Krzywe – realizacja ściemniania
Linia została „przesunięta”
w dół
Gęstość rozłożenia stopni
jasności jest taka sama
Zakres stopni jasności jest
przesunięty w stosunku do
oryginału w stronę
mniejszej jasności.
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Krzywe – realizacja zmiany kontrastu
Linia została
„przekrzywiona” w dół
Gęstość rozłożenia stopni
jasności jest mniejsza
Zakres stopni jasności jest
przesunięty w stosunku do
oryginału w stronę
mniejszej jasności.
Uzyskano niezamierzone ściemnienie obrazu
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Krzywe – realizacja zmiany kontrastu
Linia została „przekrzywiona”
symetrycznie względem
środka
Gęstość rozłożenia stopni
jasności jest mniejsza
Obszar wynikowy znajduje
się w odpowiednim zakresie
jasności w stosunku do
oryginału
Prawidłowa realizacja zmiany kontrastu
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Krzywe – realizacja zmiany kontrastu
Linia została „przekrzywiona”
symetrycznie względem
środka
Gęstość rozłożenia stopni
jasności jest większa
Obszar wynikowy znajduje
się w odpowiednim zakresie
jasności w stosunku do
oryginału
Prawidłowa realizacja zwiększenia kontrastu
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Krzywe – realizacja korekcji gamma
Rysunek ilustruje
rozciągnięcie poziomów
ciemnych.
Zakres najciemniejszy został
rozciągnięty
Zakres środkowy przesunięty
w stronę jaśniejszą
Zakres jasny został ściśnięty
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Krzywe – realizacja korekcji gamma
Rysunek ilustruje
rozciągnięcie poziomów
jasnych.
Zakres najciemniejszy został
ściśnięty
Zakres środkowy przesunięty
w stronę ciemniejszą
Zakres jasny został
rozciągnięty.
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Krzywe – realizacja korekcji obrazu
Jakie niedoskonałości ma ten obraz?
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Krzywe – realizacja korekcji obrazu
Co pokazuje histogram?
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Krzywe – realizacja korekcji obrazu
Korekcja gamma poprawia cały obraz?
Przetwarzanie obrazu cyfrowego
Przekształcenia bezkontekstowe
Krzywe – realizacja korekcji obrazu
Korekcja tylko w obszarze najjaśniejszym
Przetwarzanie obrazu cyfrowego
Przetwarzanie kontekstowe
Przekształcenia kontekstowe dokonują transformacji
poziomów jasności pikseli analizując za każdym razem nie
tylko jasność danego piksela ale również jasności pikseli go
otaczających.
Przetwarzanie obrazu cyfrowego
Przetwarzanie kontekstowe
Najczęściej wykorzystuje się prostokątne otoczenie badanego piksela numerując
piksele w stosunku do piksela środkowego (i,j=0).
Otoczenie najczęściej ma grubość 1 piksela (Im większy obszar wkoło piksela tym
dłuższy czas obliczania przekształcenia)
-1,-1 0,-1 1,-1
-1,0 0,0 1,0
-1,1 0,1 1,1
Przetwarzanie obrazu cyfrowego
Przetwarzanie kontekstowe
Przekształcenia liniowe
Najczęściej stosowanym rodzajem filtru liniowego jest
Konwolucja (splot)
Kji
jijnimnm wAa
A),(
,),(, 1
'
Kji
jiwa),(
),(
Gdzie w(i,j) jest wagą jasności piksela w pozycji i,j w stosunku do piksela przekształcanego.
Przetwarzanie obrazu cyfrowego
Przetwarzanie kontekstowe
Przekształcenia liniowe – filtr uśredniający
Piksel przyjmuje wartość średnią liczoną z wszystkich pikseli otoczenia. Uzyskuje
się w ten sposób efekt rozmycia obrazu
1 1 1
1 1 1
1 1 1
Przetwarzanie obrazu cyfrowego
Przetwarzanie kontekstowe
Przekształcenia liniowe – filtr uśredniający
Filtr ten powoduje wygładzenie poszarpanych brzegów czy chropowatych
powierzchni za cenę utraty ogólnej ostrości obrazu
Przetwarzanie obrazu cyfrowego
Przetwarzanie kontekstowe
1 1 1
1 2 1
1 1 1
Przekształcenia liniowe – filtr Gaussa
Filtr Gaussa przypisuje większą wagę do oryginalnej jasności piksela
Wykorzystuje dwa rodzaje masek
1 2 1
2 4 2
1 2 1
Przetwarzanie obrazu cyfrowego
Przetwarzanie kontekstowe
Przekształcenia liniowe – filtr Gaussa
W większości programów edycyjnych narzędzie rozmycia Gaussowskiego pozwala
na wybór promienia – wielkości maski
Im większa wartość
promienia tym
mocniejsze
rozmycie
Przetwarzanie obrazu cyfrowego
Przetwarzanie kontekstowe
0 -1 0
-1 4 -1
0 -1 0
Przekształcenia liniowe – filtr wzmacniający
Filtr wzmacniajacy ma za zadanie uwydatnić zmianę koloru/jasności. Powoduje on
wyodrębnienie szczegółów takich jak krawędzie, narożniki itp.
Podstawowymi maskami wyodrębniającymi są maski Laplace’a
-1 0 -1
0 4 0
-1 0 -1
1 -2 1
-2 4 -2
1 -2 1
-2 1 -2
1 4 1
-2 1 -2
-1 -1 -1
-1 8 -1
-1 -1 -1
Cechą tych filtrów jest zerowanie się sumy wszystkich wag w masce
Przetwarzanie obrazu cyfrowego
Przetwarzanie kontekstowe
Przekształcenia liniowe – filtr wzmacniający
W programach graficznych filtry wzmacniające wykorzystują predefiniowaną maskę
pozostawiając użytkownikowi pośrednią regulację „mocy” filtru.
Za pomocą tego typu
filtrów można uzyskać
zarówno niewielkie
wzmocnienie krawędzi
Przetwarzanie obrazu cyfrowego
Przetwarzanie kontekstowe
Przekształcenia liniowe – filtr wzmacniający
W programach graficznych filtry wzmacniające wykorzystują predefiniowaną maskę
pozostawiając użytkownikowi pośrednią regulację „mocy” filtru.
Jak i zupełne ich
wyodrębnienie z
obrazu
Przetwarzanie obrazu cyfrowego
Przetwarzanie kontekstowe
1 2 1
0 0 0
-1 -2 -1
Przekształcenia liniowe – filtr krawędziowy kierunkowy
Filtry tego typu są określane nazwą filtrów Sobela
Pozwalają one na wyodrębnienie w obrazie krawędzi ułożonych w pewnym
kierunku
-1 0 1
-2 0 2
-1 0 1
Poziomy Pionowy
Przetwarzanie obrazu cyfrowego
Przetwarzanie kontekstowe
Przekształcenia liniowe – filtr krawędziowy kierunkowy
Filtry tego typu są określane nazwą filtrów Sobela
Pozwalają one na wyodrębnienie w obrazie krawędzi ułożonych w pewnym
kierunku
Przetwarzanie obrazu cyfrowego
Przetwarzanie kontekstowe
0 0 0
-1 0 0
0 1 0
Przekształcenia liniowe – filtr krawędziowy kierunkowy
Filtry Sobela pozwalają również na wyszukiwanie krawędzi ukośnych
Przetwarzanie obrazu cyfrowego
Przetwarzanie kontekstowe
Przekształcenia nieliniowe
Liniowe przekształcenia stosowały tą samą funkcję dla
wszystkich punktów obrazu.
W przypadku przekształceń nieliniowych dobór
przekształcenia następuje na podstawie analizy otoczenia
przetwarzanego piksela
Przetwarzanie obrazu cyfrowego
Przetwarzanie kontekstowe
Przekształcenia nieliniowe
Filtry nieliniowe możemy podzielić na:
• filtry kombinowane
Są one nieliniową kombinacją wyników kilku filtrów liniowych.
(Np. wykonanie kilku rozmyć obrazu i wybranie punktów
najbardziej zbliżonych do wartości oryginalnych
Przetwarzanie obrazu cyfrowego
Przetwarzanie kontekstowe
Przekształcenia nieliniowe
Filtry nieliniowe możemy podzielić na:
• operacje logiczne
Najczęściej wykonywane są one na obrazach binarnych.
Typowe przekształcenia to
• inwersja (NOT)
• wycinanie maską (AND)
• odejmowanie (SUB), także wielu
obrazów
• OR, XOR
Przetwarzanie obrazu cyfrowego
Przetwarzanie kontekstowe
Przekształcenia nieliniowe
Filtry nieliniowe możemy podzielić na:
• Filtry statystyczne
Minimum
Jako nowa wartość jest wybierana najmniejsza
wartość spośród wartości otoczenia (najmniejsza
jasność)
Maksimum
Jako nowa wartość jest wybierana największa
wartość spośród wartości otoczenia (największa
jasność)
Przetwarzanie obrazu cyfrowego
Przetwarzanie kontekstowe
Przekształcenia nieliniowe
Filtry nieliniowe możemy podzielić na:
• Filtry statystyczne
Medianowe
Filtry wybierające jako nową wartość, tą z wartości
otoczenia, która jest najbliższą wartości średniej.
Nie wprowadza nowych wartości do obrazu.
Za pomocą filtru medianowego możemy uzyskać
wygładzanie bez rozmycia. Wadą tego filtru jest
tendencja do „obgryzania narożników”.
Przetwarzanie obrazu cyfrowego
Przetwarzanie kontekstowe
Przekształcenia nieliniowe
Mediana w Gimpie
Przetwarzanie obrazu cyfrowego
Przetwarzanie kontekstowe
Przekształcenia nieliniowe
Filtry nieliniowe możemy podzielić na:
• filtry adaptacyjne
zmiana charakterystyki działania w zależności od cech
analizowanego obrazu.
Np. filtr uśredniający składający się z dwóch etapów
1 - detekcja krawędzi
2- zastosowanie filtra uśredniającego (wygładzenie) do
punktów nie będących krawędziami.
Przetwarzanie obrazu cyfrowego
Przetwarzanie obrazu rastrowego
Tyle o teorii
A w praktyce…