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 http://wbieniec.kis.p.lodz.pl/pwsz
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
Operacje na obrazie Operacje punktowe f I I’
Operacje na obrazie Operacje lokalnego sąsiedztwa f I I’ 4
Operacje na obrazie Operacje globalne f I’ I 5
Operacje na obrazie Operacje na obiektach f I A 6
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
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]]++;
Operacje punktowe - histogram Zastosowanie – kontrola ustawień matrycy światłoczułej Zbyt ciemna Zbyt jasno Za mały kontrast właściwa 9
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
Analiza histrogramu Obraz zawiera jednolite obszary: ciemny: zieleń jasny: niebo Bardzo jasny: chmura. Warunki oświetleniowe są prawidłowe
Analiza histogramu Histogram przypomina rozkłąd normalny. Brak większych jednolitych obszarów, dobre warunki oświetlenia
Analiza histogramu Histogram ma 5 maksimów „pików”. Obraz jest zbyt ciemny
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);
Manipulacja histogramem Obraz wejściowy liniowa nieliniowa wyrównanie
Rozciąganie histogramu
Obcięcie histogramu lmin lmax
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.
Histogram skumulowany
Algorytm wyrównywania histogramu
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
Korekcja Gamma jest liczbą rzeczywistą =0.5 (kreskowana), = 2 (linia) and =6 (kropkowana).
Operacje lokalnego sąsiedztwa SPLOT: Zamień wartość centralnego piksela poprzez sumę ważoną wartości pikseli sąsiednich wewnątrz maski nn.
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
The derivatives – continuous domain
Splot - gradient Moduł z gradientu jest inwariantny względem obrotu grad x: fx Moduł z gradientu jest inwariantny względem obrotu grad y: fy
Splot - laplacian Laplacian Jest inwariantny względem obrotu fxx fyy 27 fyy
Wyostrzenie obrazu
Wyostrzenie obrazu 29 sharpen(f ) = f – laplace(f )
Wykrywanie krawędzi - szkic metody B=Gauss(A ) AND PROGOWANIE D= (B == 0)
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ą
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)
Filtry max i min Filtry max/min zamieniają centralny piksel poprzez maksymalną lub minimalną wartość z sąsiednich pikseli
Jak wyznaczyć tło?
Korekcja nierównomiernego oświetlenia
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
Dodawanie punktowe + = Wykrywanie krawędzi Co poszło nie tak?
Dodawanie punktowe I I2 = Canny(I) I3 = Binary(I2) I6 = I2 + I5 I4 = NOT(I3) I5 = I4 AND I
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ć?
Mistake = query image – test image Odejmowanie obrazów Obraz - pytanie Obraz wzorcowy Mistake = query image – test image
Dzielenie obrazów I1 = I - red(I ) I2 = I - green(I ) I3 = I1 / I 2
Przenikanie obrazów
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
Blue box (czasami jest zielony) Filtracja alfa A – pierwszy plan B – tło C – wynik Blue box (czasami jest zielony) M – cień
Operacje geometryczne - odbicie pionowe poziome
Operacje geometryczne - obrót
Implementacja na tablicy 1D Co roi ten program?
Zmiana rozmiaru x3 x3
Transformacja prosta i odwrotna Co może pójść nie tak?
Transformacja prosta i odwrotna
Operacje wymagające resamplingu Zmiana rozmiaru 512 x 256 House (256 x 256) Zmiana rozmiaru z zachowaniem proporcji
Operacje wymagające resamplingu House (256 x 256) 30 rotacja
Operacje wymagające resamplingu Ścinanie poziome Ścinanie pionowe House Korekcja perspektywy
Określenie koloru – najbliższy sąsiad Jak to zaimplementujesz? Interpolacja zerowego rzędu
Obliczenie koloru – najbliższy sąsiad Magnified part of original Magnified part of resized Zero order inteerpolation
Obliczenie koloru - interpolacja Interpolacja pierwszego rzędu - dwuliniowa
Implementacja interpolacji dwuliniowej
Interpolacja dwuliniowa - wyniki Original Nearest neighbor bilinear
Interpolacja funkcjami sklejanymi (splot)
Interpolacja dwusześcienna – splot gdzie a jest zwykle z przedziału -0.5 do -0.75
Interpolacja dwusześcienna Spline cubic formula for 6x6 pixel kernel sinc function windowed to 8 pixels (Lanczos)
Spline interpolation results Original bilinear sinc splines Which method is best?
KONIEC WYKŁADU