1 Przetwarzanie obrazów zima 2015Wykł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 obrazuPoprawa 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 - histogramHistogrm 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
9 Operacje punktowe - histogramZastosowanie – 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 histogramemObraz wejściowy liniowa nieliniowa wyrównanie
16 Rozciąganie histogramu
17 Obcięcie histogramu lmin lmax
18 Wyrównanie histogramuWyró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 histogramuPomimo 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ąsiedztwaSPLOT: 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 obrotugrad x: fx Moduł z gradientu jest inwariantny względem obrotu grad y: fy
27 Splot - laplacian Laplacian Jest inwariantny względem obrotu fxx fyy27 fyy
28 Wyostrzenie obrazu
29 Wyostrzenie obrazu 29 sharpen(f ) = f – laplace(f )
30 Wykrywanie krawędzi - szkic metodyB=Gauss(A ) AND PROGOWANIE D= (B == 0)
31 Operacje nieliniowe – filtry rangoweFiltry 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 + I5I4 = 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 imageOdejmowanie 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 NXORDla 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 - odbiciepionowe poziome
46 Operacje geometryczne - obrót
47 Implementacja na tablicy 1DCo roi ten program?
48 Zmiana rozmiaru x3 x3
49 Transformacja prosta i odwrotnaCo może pójść nie tak?
50 Transformacja prosta i odwrotna
51 Operacje wymagające resamplinguZmiana rozmiaru 512 x 256 House (256 x 256) Zmiana rozmiaru z zachowaniem proporcji
52 Operacje wymagające resamplinguHouse (256 x 256) 30 rotacja
53 Operacje wymagające resamplinguŚcinanie poziome Ścinanie pionowe House Korekcja perspektywy
54 Określenie koloru – najbliższy sąsiadJak to zaimplementujesz? Interpolacja zerowego rzędu
55 Obliczenie koloru – najbliższy sąsiadMagnified part of original Magnified part of resized Zero order inteerpolation
56 Obliczenie koloru - interpolacjaInterpolacja pierwszego rzędu - dwuliniowa
57 Implementacja interpolacji dwuliniowej
58 Interpolacja dwuliniowa - wynikiOriginal Nearest neighbor bilinear
59 Interpolacja funkcjami sklejanymi (splot)
60 Interpolacja dwusześcienna – splotgdzie a jest zwykle z przedziału -0.5 do -0.75
61 Interpolacja dwusześciennaSpline cubic formula for 6x6 pixel kernel sinc function windowed to 8 pixels (Lanczos)
62 Spline interpolation resultsOriginal bilinear sinc splines Which method is best?
63 KONIEC WYKŁADU