Treść wykładu Przetwarzanie i analiza obrazów w Matlabie Cz.2 Opracował: dr inż. Z. Rudnicki KKiEM AGH Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 1 Filtracja szumów Binaryzacja obrazów szarych Przekształcenia morfologiczne obrazów binarnych Indeksacja obiektów zainteresowań Ekstrakcja cech obiektów Ekstrakcja cech obrazów teksturowych Cechy dyskryminacyjne i rozróżnianie (dyskryminacja) klas obrazów Przykłady analizy zmian powierzchni oraz struktury materiału Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 2 Badanie i filtracja szumu Szum generowany w przetworniku CCD kamery wideo jest szczególnie wyraźny przy ciemnych obrazach (np. słabe oświetlenie lub krótki czas ekspozycji - konieczny przy ruchu) Dla oceny poziomu szumu: Zarejestrowano kilka obrazów wycinka nieruchomej powierzchni, Wyznaczono z nich obraz uśredniony XS, czyli macierz będącą średnią arytmetyczną macierzy obrazów tej serii Dla otrzymania obrazu szumu istniejącego w obrazie X odjęto od niego obraz uśredniony XS: SZUM = (X XS) Obraz i jego szum: Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 3 Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 4 Profile i histogram obrazu szumu Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 5 Obraz szumu uzyskano programem: clear; dir1='f:\obrazy\'; seria='boczn'; pli01=[seria,'.txt']; pls=[dir1,pli01]; [spis,info]=fopen(pls); % Otwiera plik SPIS i=0; while feof(spis) == 0 % do konca pliku SPIS nz=fgetl(spis), naz=[dir1,nz]; i=i+1; if i==1 A=double(imread(naz)); S=A; else S=S+double(imread(naz)); end end; S=S/i; SZUM=A-S; sr=mean(a(:)), m=median(a(:)), SZmin=min(A(:)), SZmax=max(A(:)) figure; imshow(histeq(uint8(szum))); sr=mean(szum(:)), m=median(szum(:)) SZmin=min(SZUM(:)), SZmax=max(SZUM(:)) figure; imshow(szum>m); fclose(spis); Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 6 1
Szum maleje przy wzroście jasności obrazów Odc h.s t.s z umu 6 5 4 3 2 Filtracja medianowa szumu Filtracja s zumów boc z ne 85GR 89GR 90GR 90GR -a 90gr-b 90C 1 0 be z filtra c ji filtr [3 x 3] filtr [5 x 5] filtr [7 x 7] Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 7 Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 8 Segmentacja a Binaryzacja Binaryzacja obrazów szarych Segmentacja to: - wyodrębnianie obiektów z tła Binaryzacja jest to rodzaj segmentacji wykonywanej na podstawie jasności pikseli obrazów szarych Inne rodzaje segmentacji mogą wyróżniać obiekty na przykład na podstawie: konturów barwy typu tekstury (faktury) powierzchni Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 9 Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 10 Binaryzacja Binaryzacja to przetwarzanie obrazów (szarych) na czarno-białe. Stosuje się ją dla redukowania informacji nieistotnych dla celu analizy np.: likwidacji odcieni szarości a wyodrębnienia kształtu konstruowania MASEK pozwalających wyodrębnić obiekty (szare) z nieistotnego tła Binaryzacja progowa (z jednym progiem) Najczęściej stosuje się binaryzację progową, w której: każdy piksel jaśniejszy od zadanego progu stanie się biały a pozostałe staną się czarne: 0 gdy A(w,k) prog B(w,k) = 1 gdy A(w,k) > prog W Matlabie dla przetworzenia obrazu szarego A na czarno-biały B wystarczy napisać: B = A>prog; Wynik zależy od wartości progu! Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 11 Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 12 2
Zastosowanie różnych progów binaryzacji Przykładowy wynik binaryzacji z dwoma progami Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 13 Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 14 Określanie wartości progu binaryzacji Jeśli histogram obrazu ma dolinę to położenie jej określa granicę między jasnymi i ciemnymi obszarami i bywa przyjmowane jako wartość progu (patrz. Tadeusiewicz [1]) Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 15 Określanie wartości progu binaryzacji (2) Próg może być określony jako: globalny - jedna liczba dla całego obrazu lub lokalny - różne progi dla poszczególnych fragmentów obrazu Próg binaryzacji bywa określany na podstawie średniej lub mediany jasności pikseli obrazu. Przed binaryzacją obraz jest czasem filtrowany i normalizowany lub poddawany wyrównywaniu histogramu Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 16 Istota przekształceń morfologicznych Przekształcenia morfologiczne obrazów binarnych Przekształcenia morfologiczne zmieniają tylko te punkty obrazu, których otoczenie jest zgodne z siatką elementu strukturalnego charakterystycznego dla danego typu przekształcenia. Są to więc: przekształcenia kontekstowe - warunkowe. Przyjmuje się, że obiekty są białe a tło czarne Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 17 Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 18 3
Dylatacja (pogrubia) i erozja ( wyżera ): Funkcja bwmorph(obraz, operacja) np.: A1 = bwmorph(a, dilate ); - dylatacja A2 = bwmorph(a, erode ); - erozja A1 = bwmorph(a, skel ); - szkieletyzacja Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 19 Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 20 skel - szkieletyzacja; oraz spur Operacje bridge oraz clean Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 21 Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 22 remove oraz shrink open oraz close Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 23 Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 24 4
Indeksacja czyli ponumerowanie obiektów zainteresowań W Matlabie do indeksacji (numerowania) obiektów służy funkcja BWLABEL Funkcja bwlabel numeruje (indeksuje) spójne obszary na obrazie binarnym BW przy założonym sąsiedztwie typu s (domyślnie s=8 czyli rozpatrywane jest sąsiedztwo 8-mio pikselowe) Składnia: L = bwlabel(bw,s) [L, n] = bwlabel(bw,s) Wynikiem jest macierz o rozmiarach takich samych jak BW w której liczby wyrażające jasność pikseli zastąpiono numerami kolejnych obiektów do których te piksele należą. Tło jest obiektem o numerze zerowym a pozostałe obiekty numerowane są kolejnymi liczbami naturalnymi od 1 do n. Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 25 Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 26 Indeksacja przykładowego obrazu Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 27 Indeksacja w Matlabie - przykład % IND1 - program pokazuje indeksację w Matlabie: % Definiowanie składowych przykładowej macierzy: clear; A1=ones(2) A2=[A1;0,0], A3=[0;0;0] A4=[A2,A3], A5=[A3,A2] % Macierz przykładowa zawierająca 4 obszary z jedynkami: A=[A4,A5; A4,A5] % Indeksacja czyli ponumerowanie tych obszarów: L = bwlabel(a,4) % Definiuję składowe RGB dla tzw. mapy z 5-cioma kolorami: kolory=[0,0,0; 1,0,0; 0,1,0; 0,0,1; 1,1,1] % Zwiększam wartości macierzy L o 1 aby wyrażały numery kolorów: L = double(l)+1 % wyœwietlam obraz jako kolorowy indeksowany: imshow(l, kolory,'notruesize') Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 28 Ekstrakcja CECH: Należy rozróżnić: Obrazy przedstawiające obiekty i pomiar cech tych obiektów oraz Obrazy tekstury (faktury) powierzchni i pomiar cech tekstur Ekstrakcja cech obiektów Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 29 Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 30 5
Operacje na obiektach obrazów binarnych Obiektem w obrazie binarnym jest każdy zbiór połączonych pikseli o wartości 1. Piksele zerowe są tłem. To czy piksele uznać za połączone czy nie - zależy od przyjętego typu sąsiedztwa (otoczenia). Stosowane są dwa typy sąsiedztwa: a) 4-ro pikselowe polega na rozpatrywaniu połączeń pikseli tylko w czterech kie-runkach (góra, dół, lewo, prawo) b) 8-mio pikselowe polega na rozpatrywaniu połączeń pikseli w 8-miu kierunkach - dodatkowo uwzględniając połączenia pikseli narożnikami czyli w kierunkach 45 i 135 stopni. W pierwszym przypadku obiekty stykające się narożnikami nie są uważane za połączone a w drugim zaś tak. Czyszczenie brzegu obrazu Przed wykonaniem pomiarów parametrów wydzielonych obiektów należy usunąć obiekty przecięte brzegiem obrazu i wskutek tego widoczne tylko częściowo (patrz. Tadeusiewicz [1]) Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 31 Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 32 Składnia: Cechy obiektu - Funkcja imfeature wynik = imfeature(l, cechy) Oblicza (mierzy) parametry dla każdego indeksowanego obiektu macierzy L. Dodatnie całkowite elementy macierzy L odpowiadają różnym obiektom na przykład elementy równe 1 odpowiadają obiektowi numer 1, elementy równe 2 obiektowi nr 2 itd. wynik jest tablicą strukturalną o długości max(l(:)). Pola tej tablicy reprezentują miary cech określonych parametrem cechy Cechy obiektu - funkcja imfeature (c.d.) wynik = imfeature(l, cechy) cechy to zbiór nazw parametrów (typu string): Może być użyte słowo 'all' rozkaz wyznaczenia wyznaczenie wszystkich parametrów. Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 33 Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 34 Klasa obrazów ma odwzorowywać dany stan powierzchni Ekstrakcja cech obrazów teksturowych AKWIZYCJA i DIGITALIZACJA OBRAZÓW PROCES AKWIZYCJA i DIGITALIZACJA OBRAZÓW PROCES AKWIZYCJA i DIGITALIZACJA OBRAZÓW OBRAZY KLAS Y 1 OBRAZY KLAS Y 2 OBRAZY KLAS Y n Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 35 Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 36 6
Analizowane obrazy powierzchni Klasa C1 Jak zapisać cechy obrazów przy pomocy liczb? Class C1: a O brazy powierzchni... b, c, d e Problem: znajdz liczbowe m iary pewnych cech obrazów, które pozwalaja najlepiej rozrózniac (dyskrym inowac) dane klasy obrazów: Klasa C2 Class C2: a... b, c, d e 1 0.9 0.8 0.7 0.6 0.5??? C1 C2 C3 0.4 0.3 Class C3:... 0.2 0.1 0 a b c d e Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 37 a b, c, d e Przykład - Liczbowe współczynniki anizotropii obrazów dla dwóch metod przetwarzania Histogram obrazu cyfrowego Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 39 Histogram to wektor o tylu składowych ile kolorów może wystąpić na obrazie. Składowa H g podaje ile jest na obrazie pikseli o kolorze g gdzie: g = 1, 2,..., Lg Histogram można zapisać wzorem: Lw Lk H g = p( g, w= 1 k= 1 x w, k ) 1 gdy xw, k = g gdzie: p( g, xw, k ) = 0 w przeciwnym przypadku Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 40 Histogram znormalizowany Wartości histogramu znormalizowanego Hn g otrzymuje się przez podzielenie odpowiednich wartości H g przez całkowitą liczbę pikseli: H g Hng = Lw Lk Histogram znormalizowany określa prawdopodobieństwo z jakim piksel może przyjąć kolor g. Można wyznaczać dla niego różnorodne parametry statystyczne. Niektóre parametry statystyczne histogramu: mediana czyli środkowy element w uporządkowanym rosnąco ciągu badanych wartości kwartyle - analogicznie wyznaczane elementy położone na pozycjach stanowiących 0% (minimalny element), 25%, 50% (czyli mediana), 75%, 100% (maksymalny element) percentyle analogicznie wyznaczane różne pozycje tego ciągu np.: 10%, 90% Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 41 Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 42 7
Niektóre parametry statystyczne histogramu obrazu Skośność i kurtoza (eksces) histogramu to cechy odporne na fluktuacje jasności obrazu Skośność określa asymetrię Eksces określa jak ostry krzywej histogramu lub łagodny kształt ma histogram Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 43 Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 44 Macierz gradientu Deskryptory wyznaczane z macierzy gradientu Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 45 Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 46 Macierz R - rozkładu długości pasm Deskryptory wyznaczane z macierzy R Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 47 Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 48 8
Miara zdolności dyskryminacyjnej - współczynnik Fisher a Cechy dyskryminacyjne i rozróżnianie (dyskryminacja) klas obrazów Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 49 Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 50 Przykłady analizy zmian powierzchni oraz struktury materiału Oprac.: dr inż. Zbigniew Rudnicki, AGH, KKiEM 51 9