wstecz | dalej 

 Archiwum Process Control Club (2001, poz.4)  
 

 
Przetwarzanie obrazów cyfrowych z wykorzystaniem
 Image Processing Toolbox pakietu Matlab




Marcin Maślanka

student V roku, spec. Automatyka i Metrologia, IMiR, AGH

 

Streszczenie - Opracowanie zawiera opis programu FIM v1.0 wykorzystującego podstawowe procedury Image Processing Toolbox do przetwarzania obrazów cyfrowych. Program umożliwia ponadto wyznaczanie transformaty Fouriera dla analizowanych obrazów oraz przeprowadzanie filtracji w dziedzinie F-obrazu.
Cechą charakterystyczną programu jest sposób realizacji interfejsu użytkownika pozwalający na łatwe dokonywanie wybranych operacji, oraz jego struktura umożliwiająca poszerzenie listy dostępnych operacji o nowe, opracowane dowolnie przez użytkownika. Wykorzystano pakiet Matlab 5.3 oraz Image Processing Toolbox 2.2

Download: FIM v1.0 (RAR, 821kB)
 


 SPIS TREŚCI

1. Wstęp
2. Transformata Fouriera dla obrazów
3. Prezentacja programu FIM v1.0
   3.1 Sposób uruchomienia i opis działania programu
   3.2 Zestawienie dostępnych funkcji programu
Literatura


1. Wstęp

    Image Processing Toolbox (IPT) stanowi zbiór, dostępnych w środowisku Matlab, specjalistycznych funkcji do analizy i przetwarzania obrazów cyfrowych. Funkcje IPT wykorzystywane są m.in. do celów:

  • wyświetlania obrazów cyfrowych;

  • eksportu/importu obrazów w różnych formatach;

  • operacji geometrycznych;

  • poprawy jakości obrazu;

  • przetwarzania i analizy obrazów;

  • projektowania filtrów;

  • transformacji obrazów (Fouriera, cosinusowa, Radona);

  • konwersji między standardami zapisu kolorów.

Prezentowany w opracowaniu program FIM v1.0 wykorzystuje jedynie pewne wybrane funkcje IPT. Zaletą programu - jak określono to w streszczeniu - jest sposób realizacji interfejsu użytkownika pozwalający na łatwe dokonywanie wybranych operacji, oraz jego struktura umożliwiająca poszerzenie listy dostępnych operacji o nowe, opracowane dowolnie przez użytkownika.


2. Transformata Fouriera dla obrazów

    Transformata Fouriera przenosi obraz do dziedziny częstotliwości. Intuicyjną definicję częstotliwości obrazu oprzeć można na kontrastach zawartych w rozpatrywanym obrazie. Krawędzie zawartych w obrazie powierzchni o jednolitej wartości koloru (skali szarości), znajdujących się na tle o odcieniu różnym od odcienia tych powierzchni to oczywiście obszary, które w obrazie transformaty Fouriera będą maskowane przez wysokie częstotliwości. Można zatem wyobrazić sobie, że usunięcie składowych z obrazu określających właśnie obszary o wysokiej częstotliwości pozwoli na rozmycie, uciąglenie obrazu.
Transformata Fouriera dla obrazów ze względu na złożoność obliczeniową nie jest powszechnie wykorzystywana w systemach wizyjnych pracujących w trybie on-line, znajduje ona jednak pewne specyficzne zastosowania do przetwarzania obrazów cyfrowych w trybie off-line. Zaawansowanym przykładem wykorzystania tej metody analizy obrazu jest badanie ukształtowania powierzchni oceanicznej na podstawie zdjęć satelitarnych. Więcej na ten temat można znaleźć w pod adresem: http://haydn.cbk.waw.pl/~kosek/strona2/kosek3.html. W przywołanym opracowaniu autorzy definiują również podstawy matematyczne transformaty Fouriera dla obrazów.

Obraz w dziedzinie transformacji Fouriera określany jest mianem F-obrazu. Piksele F-obrazu nazywane są F-pikselami. Dwuwymiarowa transformata Fouriera może być przeprowadzona jako transformata jednowymiarowa najpierw wierszami, następnie kolumnami lub najpierw kolumnami, następnie wierszami. W obu przypadkach wynik będzie identyczny.
Dysponując algorytmami jednowymiarowymi FFT oraz IFFT można zatem w łatwy sposób utworzyć odpowiedni algorytm transformaty dwuwymiarowej.
Algorytm obliczania FFT2 zaimplementowany w przyborniku Image Processing Toolbox programu Matlab jest następujący:

B= fft(fft(A).').';

gdzie: A - obraz wejściowy, B - obraz wynikowy.

Przykład:

load imdemos saturn2
imshow(saturn2)

Rys.1
Rys.1 Przykładowy obraz

B = fftshift(fft2(saturn2));
imshow(log(abs(B)),[]);
colormap(jet(64));

Rys.2
Rys.2 Przesunięty moduł transformaty Fouriera obrazu z rys.1

Polecenie fftshift przesuwa składową stałą wyniku transformaty z obrazu wejściowego do centrum F-obrazu. Poniżej przedstawiono F-obraz uzyskany przy wykonaniu powyższych instrukcji bez przesunięcia składowej stałej.

Rys.3
Rys.3 Moduł transformaty Fouriera obrazu z rys.1
bez przesunięcia

Polecenie imshow(log(abs(B)),[]) wyświetla zlogarytmowaną wartość modułu transformaty.
Logarytmowanie ma na celu rozciągnięcie wartości modułu transformaty do zakresu umożliwiającego wygodną wizualizację wyniku.

W programie FIM zaimplementowano opcję wyboru rodzaju wizualizacji wyników obliczonej transformaty Fouriera dla zadanego obrazu. Obojętnie w jakiej postaci wynik transformaty jest przedstawiany, zapisywany jest on zawsze pod tą samą postacią, zatem sposób przedstawiania wyniku transformaty nie ma wpływu na wynik operacji ifft2, czy operacji filtracji obrazu w dziedzinie częstotliwościowej (opcja FIM filtracja).

Poniżej przedstawiono przykłady zastosowania filtracji w dziedzinie częstotliwości do usuwania pewnych wybranych typów szumów występujących w obrazach cyfrowych. Wszystkie zamieszczone obrazy zostały wygenerowane w programie FIM. 

1. Obraz oryginalny o rozdzielczości 128 na 128. 

Rys.4
Rys.4 Przykładowy obraz - Lena

2. Obraz oryginalny do którego dodany został szum sinusoidalny wygenerowany za pomocą opcji 'Szum' programu FIM wg zawartego poniżej przepisu (w odpowiedniej pętli przez wszystkie piksele obrazu):

X(i,j)= X(i,j) + sin(0.5* i) + sin (0.2 * j);

gdzie: X(i,j) - piksel obrazu o współrzędnych i, j.

Rys.5
Rys.5 Obraz z rys.4 zniekształcony szumem

3. Moduł przesuniętej transformaty obrazu zaszumionego przedstawia się następująco:

Rys.6
Rys.6 F-obraz

po zbliżeniu centrum obrazu (rysunek poniżej) widać wyraźnie jasne punkty rozmieszczone symetrycznie względem punktu środka F-obrazu. Rozjaśnienia te pochodzą od wprowadzonego szumu sinusoidalnego. Jak można zauważyć na rysunku częstotliwość szumu przyłożonego wzdłuż wysokości obrazu jest większa od szumu przyłożonego wzdłuż szerokości (odległość jasnych punktów od centrum jest większa w pionie niż w poziomie).

Rys.7
Rys.7

4. Filtracja idealnym filtrem komplementarnym w dziedzinie częstotliwości (przy zastosowaniu opcji FIM filtracja).

Filtracja polega na usunięciu składowych F-obrazu przenoszących informację o szumie. W tym przypadku składowe te zostały powyżej zidentyfikowane a po ich usunięciu F-obraz wygląda następująco (usunięta została jedna ze składowych szumu).

Rys.8
Rys.8 F-obraz z częściowo usuniętą składową poziomą szumu

Po odwróceniu F-obrazu funkcją ifft2 otrzymuje się: 

Rys.9
Rys.9

Usunięta została zatem składowa pozioma szumu.

Po zastosowaniu podobnej procedury dla składowej poziomej otrzymuje się:

Rys.10
Rys.10

Celem całkowitego usunięcia szumu dokonano usunięcia wszystkich składowych F-obrazu przenoszących informację o tym szumie. Postać F-obrazu po usunięciu szumu wygląda następująco:

Rys.11
Rys.11

Tak natomiast wygląda wynik przeprowadzonej filtracji:

Rys.12
Rys.12 Wynik przeprowadzenia filtracji w dziedzinie F-obrazu
na zaszumionym obrazie z rys.5

 


3. Prezentacja programu FIM v1.0
3.1 Sposób uruchomienia i opis działania programu

    Po rozpakowaniu plików programu do wybranego katalogu, należy odpowiednio zmienić katalog bieżący uruchomionego pakietu Matlab na katalog, w którym znajdują się rozpakowane pliki programu. W katalogu tym powinien znajdować się podkatalog o nazwie help z plikami pomocy w formacie html. Po odpowiedniej zmianie katalogu bieżącego program uruchamia się poleceniem fim wpisanym w linii poleceń Command Window pakietu Matlab.

W oknie programu widocznych jest sześć pól wyświetlania rozpatrywanych obrazów, pomiędzy którymi umieszczone są przyciski z oznaczonymi strzałkami. U dołu okna znajduje się element popupmenu Rodzaju przekształcenia oraz przycisk Parametry. Zasada pracy z programem polega na wybraniu odpowiedniego przekształcenia z listy dostępnych przekształceń i po doborze odpowiednich parametrów dokonaniu wybranego przekształcenia poprzez jego uruchomienie przyciskiem strzałki. Strzałka na przycisku oznacza kierunek dokonania operacji. Możliwe jest zatem dokonywanie przekształceń obrazu 1 w 2, 2 w 3, 2 w 5, 3 w 4, 4 w 5, 5 w 6 oraz 6 w 1.
Opcja Plik | Import pozwala na otwarcie wybranego obrazu do pola oznaczonego jako 'Obraz 1'.
Przycisk Wyczyść umożliwia wyczyszczenie wszystkich pól oprócz pola oznaczonego jako 'Obraz 1'. 

Otwórzmy przykładowy obraz. Wybieramy w tym celu: Plik | Import | JPG i wybieramy obraz Lena512.jpg. Następnie wybierzmy z listy u dołu okna przekształcenie określone jako FFT2 i naciśnijmy strzałkę na lewo od pola 'Obrazu 1'. Na zamieszczonym rysunku przedstawiono jak powinno wyglądać okno programu po prawidłowo dokonanej operacji (fragment):

Rys.13
Rys.13 Fragment okna głównego programu FIM v1.0

Po wybraniu z listy operacji przekształcenia FFT2 uaktywnia się przycisk Parametry. Po jego wciśnięciu ukazuje się okno doboru parametrów wyświetlania wyników transformaty Fouriera (oznaczonej jako FFT2) - w podobny sposób dobiera się parametry do pozostałych operacji.

3.2 Zestawienie dostępnych funkcji programu

    W obecnej wersji programu zaimplementowano:

filtrację konwolucyjną przy zastosowaniu masek 3 na 3 lub 5 na 5 o współczynnikach definiowanych przez użytkownika i zapisywanych pod podaną nazwą; zobacz (24kB)
filtrację medianową o podanym wymiarze maski; zobacz (18kB)
wyznaczanie FFT2 dla obrazu z możliwością wyświetlania amplitudy lub fazy z przesunięciem lub bez przesunięcia;
dokonywanie przekształcenia odwrotnego do FFT2;
filtrację w dziedzinie F-obrazu, przy zastosowaniu projektowanych przez użytkownika idealnych filtrów komplementarnych; zobacz (48kB)
dodawanie szumu dowolnie definiowanego przez użytkownika w formie funkcji realizowanej w pętli dla każdego piksela obrazu; zobacz (48kB)
wyznaczanie histogramu; zobacz (47kB)
inwersję obrazu;
import oraz eksport danych do np.: pliku formatu .jpg;
możliwość kopiowania obrazów do pamięci operacyjnej.
 

Literatura

[1]    P. Pełczyński, P. Strumiłło, M. Strzelecki: Laboratorium przetwarzania obrazów (411kB format pdf)
[2]    W. Popiński, W. Kosek: SPECTRAL ANALYSIS OF SEA SURFACE TOPOGRAPHY OBSERVED BY TOPEX/POSEIDON ALTIMETRY USING 2D FFT


 

Od autora: 
 
  • Wykorzystywane przeze mnie oprogramowanie zostało mi udostępnione przez AGH.
  • Kod źródłowy wszystkich plików składających się na program FIMv1.0 został w całości napisany wyłącznie przeze mnie.
  • Program FIMv1.0 objęty jest licencją o treści dołączonej do plików programu.
  • Zachęcam do przesyłania na mój adres wszelkich opinii, zapytań lub propozycji dotyczących programu FIM i/lub tego opracowania.

Marcin Maślanka
e-mail: masmar1pl@yahoo.com