Pobierz prezentację
1
Przetwarzanie obrazów zima 2015
Wykład 3 Poprawa jakości obrazów Agenda: Operacje na obrazach Operacje na histogramie Prosta filtracja dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki
2
Poprawa jakości obrazu
Poprawa jakości – przetwarzanie wstępne - Pierwszy etap automatycznej analizy obrazu - W celu ułatwienia oglądania i analizy ręcznej obrazu (łatwiej oglądać i analizować obraz) Poprawa jakości operacje punktowe (jasność i kontrast) operacje obszarowe filtracja resampling i korekcja geometrii
3
Operacje na obrazie Operacje punktowe f I I’
4
Operacje na obrazie Operacje lokalnego sąsiedztwa f I I’ 4
5
Operacje na obrazie Operacje globalne f I’ I 5
6
Operacje na obrazie Operacje na obiektach f I A 6
7
Jasnośći i kontrast Zadaniem operacji punktowych jest dopasowanie jasności i kontrastu obrazu. Zadaniem operacji punktowych jest dopasowanie jasności i kontrastu obrazu. Kontrastem obrazu nazywamy odchylenie względne funkcji obrazu
8
Operacje punktowe - histogram
Histogrm oblicza częstość wystąpienia każdej wartości funkcji obrazu char [][]image = new char[M][N]; int []h = new int[256]; for(int i=0;i<256; h[i++] = 0); for(int i=0;i<N;i++) for(j=0;j<M;j++) h[image[i][j]]++;
9
Operacje punktowe - histogram
Zastosowanie – kontrola ustawień matrycy światłoczułej Zbyt ciemna Zbyt jasno Za mały kontrast właściwa 9
10
Analiza hisogramu Prawie połowa obszaru jest ciemna (zieleń)
Dużo wartości z lewej strony Prawie połowa obszaru jes jasna (niebo) Dużo wartości z prawej strony Wniosek: Złe warunki ekspozycji
11
Analiza histrogramu Obraz zawiera jednolite obszary: ciemny: zieleń
jasny: niebo Bardzo jasny: chmura. Warunki oświetleniowe są prawidłowe
12
Analiza histogramu Histogram przypomina rozkłąd normalny. Brak większych jednolitych obszarów, dobre warunki oświetlenia
13
Analiza histogramu Histogram ma 5 maksimów „pików”.
Obraz jest zbyt ciemny
14
Lookup table LUT jest strukturą danych (najczęściej tablicą haszowaną) używaną do szybkiego przetwarzania punktowego obrazów (tablicowa reprezentacja funkcji transformującej). Zastosowanie przyspiesza znacząco obliczenia w porównaniu do zastosowania funkcji w postaci analitycznej. LUT może być realizowana sprzętowo char LUT[]=new char[256]; for(int j=0;j<256; j++) LUT[j]=fun(j);
15
Manipulacja histogramem
Obraz wejściowy liniowa nieliniowa wyrównanie
16
Rozciąganie histogramu
17
Obcięcie histogramu lmin lmax
18
Wyrównanie histogramu
Wyrównanie histogramu jest monotoniczną operacją nieliniową, która zmienia jasności punktów obrazu tak, aby histogram prezentował rozkład równomierny (histogram będzie płaski). Technika ta jest użyteczna w procesie porównywania obrazów, ponieważ jest bardzo efektywna przy szczegółowej poprawie jakości oraz korekcji nieliniowych efektów systemu akwizycji obrazu lub wyświetlacza.
19
Histogram skumulowany
20
Algorytm wyrównywania histogramu
21
Wyrównanie histogramu
Pomimo tego, że wyrównanie histogramu działa perfekcyjnie dla obrazu analogowego, w przypadku obrazu cyfrowego (funkcja jest dyskretna) nie jest możliwe uzyskanie zupełnie płaskiego histogramu
22
Korekcja Gamma jest liczbą rzeczywistą =0.5 (kreskowana), = 2 (linia) and =6 (kropkowana).
23
Operacje lokalnego sąsiedztwa
SPLOT: Zamień wartość centralnego piksela poprzez sumę ważoną wartości pikseli sąsiednich wewnątrz maski nn.
24
SPLOT - wygładzanie Jeżeli wszystkie współczynniki filtru są nieujemne, filtr będzie filtrem wygładzającym Rozmiar maski filtru wpływa na poziom wygładzenia Mały filtra Gaussa (sigma = 1, maska 5x5) * Duży filtr Gaussa (sigma = 4, maska 17x17) Suma współczynników maski musi by równa 1oefficients is 1
25
The derivatives – continuous domain
26
Splot - gradient Moduł z gradientu jest inwariantny względem obrotu
grad x: fx Moduł z gradientu jest inwariantny względem obrotu grad y: fy
27
Splot - laplacian Laplacian Jest inwariantny względem obrotu fxx fyy
27 fyy
28
Wyostrzenie obrazu
29
Wyostrzenie obrazu 29 sharpen(f ) = f – laplace(f )
30
Wykrywanie krawędzi - szkic metody
B=Gauss(A ) AND PROGOWANIE D= (B == 0)
31
Operacje nieliniowe – filtry rangowe
Filtry rangowe: sortują wartości odcieni szarości w sąsiedztwie określonym maską nn i zamieniają jasność centralnego piksela poprzez: Medianę – wartość środkową Wartość minimalną Wartość maksymalną
32
Filtr medianowy Gauss filter (5x5) Obraz wejściowy Filtr medianowy 3x3 Filtr medianowy ma zastosowanie tylko dla szumu impulsowego. Zastępuje uszkodzone piksele najbardziej prawdopodobną wartością. Nie uszkadza dobrych pikseli Gauss filter (13 x 13)
33
Filtry max i min Filtry max/min zamieniają centralny piksel poprzez maksymalną lub minimalną wartość z sąsiednich pikseli
34
Jak wyznaczyć tło?
35
Korekcja nierównomiernego oświetlenia
36
Arytmetyka obrazów Dodawanie punktowe: image1 + image2 (lub stała)
Odejmowanie punktowe: image1 – image2 (lub stała) Mnożenie punktowe: image1 * image2 (lub stała) Dzielenie punktowe: image1 / image2 (lub stała) Przenikwanie – punktowa kombinacja liniowa dwóch obrazów Logiczne AND/NAND - punktowe AND/NAND dwóch obrazów binarnych Logiczne OR/NOR - punktowe OR/NOR dwóch obrazów binarnych Logiczne XOR/XNOR - pounktowe XOR/XNOR dwóch obrazów binarnych Inwersja logiczne NOT Operacja Bitshift – punktowe mnożenie/dzielenie przez 2 wartości jasności
37
Dodawanie punktowe + = Wykrywanie krawędzi Co poszło nie tak?
38
Dodawanie punktowe I I2 = Canny(I) I3 = Binary(I2) I6 = I2 + I5
I4 = NOT(I3) I5 = I4 AND I
39
Odejmowanie obrazów Jak wydobyć kombinerki z obrazu?
background(x,y) I(x,y) object(x,y) Object(x,y) = I(x,y) – background(x,y) Co może być problemem? Jak go rozwiązać?
40
Mistake = query image – test image
Odejmowanie obrazów Obraz - pytanie Obraz wzorcowy Mistake = query image – test image
41
Dzielenie obrazów I1 = I - red(I ) I2 = I - green(I ) I3 = I1 / I 2
42
Przenikanie obrazów
43
Operacje binarne AND OR XOR NAND NOR NXOR
Dla obrazów binarnych lub na poziomie bitów I1 I2 I 1 I1 I2 I 1 I1 I2 I 1 AND OR XOR I1 I2 I 1 I1 I2 I 1 I1 I2 I 1 NAND NOR NXOR
44
Blue box (czasami jest zielony)
Filtracja alfa A – pierwszy plan B – tło C – wynik Blue box (czasami jest zielony) M – cień
45
Operacje geometryczne - odbicie
pionowe poziome
46
Operacje geometryczne - obrót
47
Implementacja na tablicy 1D
Co roi ten program?
48
Zmiana rozmiaru x3 x3
49
Transformacja prosta i odwrotna
Co może pójść nie tak?
50
Transformacja prosta i odwrotna
51
Operacje wymagające resamplingu
Zmiana rozmiaru 512 x 256 House (256 x 256) Zmiana rozmiaru z zachowaniem proporcji
52
Operacje wymagające resamplingu
House (256 x 256) 30 rotacja
53
Operacje wymagające resamplingu
Ścinanie poziome Ścinanie pionowe House Korekcja perspektywy
54
Określenie koloru – najbliższy sąsiad
Jak to zaimplementujesz? Interpolacja zerowego rzędu
55
Obliczenie koloru – najbliższy sąsiad
Magnified part of original Magnified part of resized Zero order inteerpolation
56
Obliczenie koloru - interpolacja
Interpolacja pierwszego rzędu - dwuliniowa
57
Implementacja interpolacji dwuliniowej
58
Interpolacja dwuliniowa - wyniki
Original Nearest neighbor bilinear
59
Interpolacja funkcjami sklejanymi (splot)
60
Interpolacja dwusześcienna – splot
gdzie a jest zwykle z przedziału -0.5 do -0.75
61
Interpolacja dwusześcienna
Spline cubic formula for 6x6 pixel kernel sinc function windowed to 8 pixels (Lanczos)
62
Spline interpolation results
Original bilinear sinc splines Which method is best?
63
KONIEC WYKŁADU
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.