You are on page 1of 16

Podstawy przetwarzania obrazu

1 Cel ćwiczenia
(Ćwiczenie ma na celu zapoznanie studentów ze środowiskiem przetwarzania obrazu ImageJ, oraz
podstawowymi przekształceniami obrazu..
2 Program ImageJ
Program ImageJ jest darmowym programem, który można pobrać ze strony http://rsbweb.
nih.gov/ij/download.html. Strona domowa znajduje pod adresem http://rsbweb.
nih.gov/ij/index.html.
ImageJ jest oprogramowaniem typu open-source na licencji GPL, napisanym w języku Java. Program
umożliwia tworzenie własnych wtyczek, również napisanych w języku Java. Program nie posiada
wersji spolszczonej.
Szczegóły instalacji dla różnych systemów operacyjnych (Windows, Linux, Mac OS) można znaleźć na
stronie http://rsbweb.nih.gov/ij/docs/install/index.html, jednak typowa
instalacja nie wymaga od użytkownika żadnych szczególnych działam Kompletna instrukcja
użytkownika, w języku angielskim, znajduje się pod adresem http://rsbweb.nih.gov/
ij/docs/guide/index.html. Niektóre możliwości programu zostały pokazane na video
tutorialach, które dostępne są pod adresem http://imagejdocu.tudor.lu/doku.php?
id=video:start.
Podczas zajęć, uczestnicy kursu zostaną zaznajomieni ze wszystkimi niezbędnymi opcjami i
możliwościami programu ImageJ.
Program przy pierwszym uruchomieniu wygląda podobnie jak Rysunek 1
3 Podstawowe opcje ImageJ
3.1 Wczytanie dowolnego obrazu - polecenie Open

Do tego celu służy polecenie Open. Można je znaleźć w zakładce File (Rysunek 2) lub skorzystać ze
skrótu klawiaturowego Ctrl+O.

Po wybraniu polecenia program otworzy przeglądarka dokumentów i poczeka na wskazanie pliku który
ma zostać wczytany. Obraz, który został wskazany zostanie otwarty w osobnym oknie.
Polecenie Open pozwala wczytać do programu ImageJ obrazy w jednym z następujących formatów:
TIFF, PNG, GIF, JPEG, DICOM, BMP, PGM lub FITS (http://imagejdocu.
tudor.lu/doku.php?id=gui:file:open).
Obrazy biomedyczne są rejestrowane w najlepszej możliwej jakości, w jednym z formatów bez-
stratnych. Formatem otwartym mającym największe możliwości jest TIFF i to właśnie ten format jest
najczęściej spotykanym dla obrazów z dużą ilością informacji. Więcej na temat formatu TIFF można
znaleźć na stronie http://en.wikipedia.org/wiki/Tagged_Image_File_Format.
3.2 Wczytanie obrazów przykładowych - polecenie Open Samples
Program ImageJ, w podstawowej dystrybucji, zawiera zestaw przykładowych obrazów, które można
wczytać poleceniem Open Samples z zakładki File (Rysunek 3).
Każdy obraz obok nazwy zawiera informacje o tym jak dużo zajmuje miejsca i opcjonalnie inne dane na
temat obrazu. Na przykład obraz „Neuron" zajmuje 1.6M i składa się z 5 kanałów, czyli tworzy go 5
obrazów, tego samego neuronu zarejestrowanych różnymi technikami i ostatecznie nałożonych na
siebie.
Wśród przykładowych obrazów znajdują się zarówno obrazy biomedyczne (np. Cardio, HeLa Cells,
CT, Gel, MRI Stack, itd.) jak i zupełnie niezwiązane z medycyna (np. Lena, Boats, Clown,
Nile Bend, M51 Galaxy, itd.).
Wczytanie niektórych przykładowych obrazów trwa dłuższa chwile i jest związane z działaniem
programu, który pobiera obrazy z serwera.

3.3 Podstawowe własności obrazu


3.3.1 Współrzędne i wartość piksela
Każdy wczytany obraz ma początek układu współrzędnych w lewym górnym rogu. Współrzędna x
odnosi się do szerokości obrazu, a y do wysokości. Im większa wartość x i y tym punkt znajduje się
dalej od lewego górnego rogu.
Rysunek 4 pokazuje gdzie wyświetlane są współrzędne i wartość luminancji (obramowane na
czerwono). Żeby sprawdzić jakie współrzędne ma wybrany piksel obrazu wystarczy zaznaczyć punkt
na wczytanym obrazie i odczytać wartość współrzędnych. W tym samym miejscu znajduje się wartość
luminancji danego punktu. Przesuwając kursorem myszy po obrazie można odczytać współrzędne i
wartość dowolnego punktu obrazu.

3.3.2 Własności obrazu

Kazdy obraz jest zapisany przy pomocy pewnej liczby bitów (bit: http://pl.wikipedia.
org/wiki/Bit). Liczba bitów na piksel informuje przy pomocy ilu bitów jest zapisana wartość
każdego piksela w danym obrazie. Każdy bit w komputerze może przyjąć jedna z dwóch dopusz-
czalnych wartości: 0 lub 1. Oznacza to, ze jeśli wartość piksela zapisana jest na 1 bicie, to taki piksel
może przyjąć 2 (2 = 21) różne wartości: 0 lub 1. Jeśli piksel zapisany jest na 8 bitach to mamy 256 (256
= 28) możliwych wartości - od 0 do 255. Zatem im więcej bitów, tym więcej możliwych wartości.
Najczęściej spotykane obrazy to obrazy 8-bitowe. Obrazy 2-bitowe, to obrazy binarne. Obrazy
biomedyczne często wymagają większej liczby bitów na piksel niż 8.
Żeby w programie ImageJ sprawdzić z jakim obrazem mamy do czynienia wystarczy odczytać
informacje z okna obrazu (Rysunek 5).
Można tez skorzystać z menu programu i sprawdzić typ obrazu, jak pokazuje Rysunek 6.

3.3.3 Fragment obrazu


Czasem nie interesuje nas cały obraz a jedynie jego fragment. ImageJ, jak wszystkie programy do
pracy z obrazem, zapewnia zestaw narządzi do zaznaczania i wycinania fragmentów obrazu. Pokazuje
je Rysunek 7.
3.3.4 Duplikat
Po zaznaczeniu fragmentu obrazu, można z nim wykonać wiele operacji na przykład stworzyć duplikat
zaznaczonego fragmentu obrazu, który zostanie poddany dalszym działaniom. Do wykonania duplikatu
wystarczy wybrać opcje Duplicate (Rysunek 8).

Jeśli polecenie Duplicate zostanie wywołane na całym obrazie (nic nie będzie zaznaczone),
wówczas wykonana zostanie kopia całego obrazu.
Wykonanie kopii obrazu przed rozpoczęciem obróbki jest niezwykle ważne. Jeśli wykonamy
przetwarzanie obrazu i zapiszemy wynik, często nie ma możliwości odzyskania oryginalnego obrazu, a
nie zawsze mamy dostęp do źródła. Dlatego przed rozpoczęciem wykonywania jakichkolwiek operacji
na obrazie należy wykonać jego kopie i na tej kopii pracować.

3.3.5 Powiększanie i pomniejszanie


Powiększenie i pomniejszenie obrazu, bądź jego fragmentu, odbywa się analogicznie jak w innych
programach do pracy z obrazem. Rysunek 9 pokazuje gdzie w interfejsie programu ImageJ znaleźć
polecenie.
Ostatnia opcja - Set pozwala na manualne wprowadzenie współczynnika skali przez użytkownika.
Wartość współczynnika wyrażona jest w procentach.
Powiększanie obrazu pozwala zobaczyć fragmenty, które z różnych powodów, są bardziej interesujące
niż cały obraz. Diagnostyka na podstawie obrazów zwykle polega na znalezieniu niewielkich
szczegółów, które pozwalają postawić tezę o wystąpieniu jednostki chorobowej.

3.3.6 Rozdzielenie składowych


Obrazy często są kompozytami, składającymi się z kilku obrazów tego samego obiektu uzyskanych
różnymi technikami obrazowania. Każdy z obrazów wchodzących w skład kompozytu jest obrazem
czarno-białym, reprezentowanym przez pojedyncza macierz. Jeśli obraz składa się z nie więcej niż 3
różnych składowych, można je zapisać używając kanałów dostępnych dla obrazów RGB. Wówczas
obraz jest widoczny jako kolorowy. Zdarza się jednak, jak na przykład dla obrazu Neuron, ze mamy
więcej obrazów niż dostępnych kanałów. Do obsługi takich obrazów nie nadają się podstawowe
formaty obrazów. Ż tego typu kompozytami radzi sobie format TIFF, który umożliwia zapis wielu
obrazów w jednym pliku. Zbieranie wszystkich składowych w jednym pliku ułatwia przechowywanie
danych.
ImageJ pozwala na przeglądanie poszczególnych składowych obrazu wielostronicowego (Rysunek
10) oraz ich rozdzielenie (Rysunek 11).
Możliwość pracy z poszczególnymi składowymi obrazu wielostronicowego jest o tyle istotna, ze każda
składowa z osobna przedstawia inne cechy wizualizowanego obiektu, typowe dla metody obrazowania
dzięki której został zarejestrowany.
Doskonałym przykładem różnych cech zarejestrowanych przy pomocy różnych metod obrazowania
jest obraz HeLa Cells, gdzie w kanale czerwonym widać lizosomy, zielonym mitochondria, a
niebieskim jadra komórek.
4 Program ćwiczenia
1. Wczytać obraz HeLa Cells dostarczony jako jeden z przykładowych obrazów razem z programem
ImageJ
2. Określić które fragmenty obrazu maja. największe, a które najmniejsze wartości luminancji; podać
współrzędne przykładowych pikseli o dużych i małych wartościach luminancji
3. Sprawdzić ile bitów na piksel wykorzystuje ten obraz
4. Zaznaczyć fragment obrazu HeLa Cells i stworzyć z niego nowy obraz
5. Powiększyć wybrany fragment obrazu tak, żeby było widać pojedyncze piksele
6. Rozdzielić obraz HeLa Cells na poszczególne obrazy składowe
7. Sprawdzić działanie dowolnie wybranych pięciu poleceń programu ImageJ, które nie pojawiły się
podczas zajęć.
5. Podstawowe przekształcenia obrazu

W celu pozyskania niezbędnych informacji z obrazów wykonuje się szereg operacji. Niektóre z operacji
wchodzących w skład analizy obrazów biomedycznych to:

• odszumianie,

• wykrywanie krawędzi,

• usuwanie tła i artefaktów,

• poprawianie jakości obrazów,

• segmentacja,

• wizualizacja 3D (o ile możliwa),

• obliczanie mierzalnych parametrów opisujących wybrany fragment obrazu (organ, guz, komórki,
itp.)

Powyższe operacje, często składają się z szeregu prostych przekształceń. Zaczniemy od podstawowych
przekształceń obrazu, aby stopniowo poznawać coraz bardziej złożone operacje pozwalające na
wykonywanie konkretnych zadań analizy obrazu.

6. Liniowe przekształcenia obrazu


Liniowe przekształcenia obrazu to takie, które zmieniają liniowo zakres dostępnych wartości nie zmieniając
przy tym struktury obrazu. W praktyce oznacza to dodawanie, odejmowanie, mnożenie lub dzielenie
wartości każdego z punktów obrazu przez stały parametr (liczbę) z zakresu liczb rzeczywistych. Do grupy
typowych liniowych przekształceń obrazu należą:

• zmiana skali szarości

• histogram i jego rozciągniecie (nie wyrównanie!)

6.1. Zmiana skali szarości i rozciągnięcie histogramu


Zwykle obraz nie wykorzystuje całej dostępnej skali poziomów szarości (w przypadku obrazu zapisanego w
skali szarości). Zmiana skali szarości bywa często potrzebna do przekształcenia obrazu w taki sposób, aby
wykorzystywał pełną dostępną skalę, czego widocznym efektem jest zwiększenie kontrastu obrazu.
Odbywa się ono przy pomocy liniowej transformacji, która nie powoduje utraty informacji niesionej przez
obraz. Przekształcenie powoduje zmianę jednej wartości intensywności na inną. Ponieważ operacja jest
liniowa, nigdy nie dojdzie do sytuacji kiedy dwie wartości oryginalne, przyjmą tą samą wartość na obrazie
wynikowym. Taka operacja nazywa się rozciągnięciem histogramu i jest to inna operacja niż wyrównanie
histogramu.
Program ImageJ umożliwia automatyczne rozciągnięcie histogramu, oraz ręczną zmianę zakresu skali
szarości. Dostęp do tych instrukcji jest możliwy po wywołaniu okna (Rysunek 1) z zakładki Image ->
Adjust -> Brightness/Contrast...
Do wyrównania histogramu służy przycisk Auto. Żeby zatwierdzić zmiany (nanieść je na obraz) należy
kliknąć Apply. Przycisk Set pozwala ręcznie wybrać zakres skali.
7. Nieliniowe przekształcenia obrazu
Nieliniowe przekształcenie obrazu polega na działaniu arytmetycznym wykonanym na wartościach obrazu
za pomocą funkcji nieliniowej. Najpopularniejsze przekształcenia nieliniowe, to transformacja wykładnicza
(np. ex), potęgowa (np. x2), logarytmiczna (np. ln(x)) oraz trygonometryczna (np. sin(x)). Przekształcenia
nieliniowe mają tę cechę, że kilka wartości oryginalnego obrazu może przyjąć jedną wartość na obrazie
wynikowym. Do grupy typowych nieliniowych przekształceń obrazu należą:

• korekcja gamma

• wyrównanie histogramu

7.1 Korekcja gamma


Jednym z przykładów przekształcenia nieliniowego, które może poprawić kontrast czy jasność obrazu lub
uwypuklić jego pożądane cechy jest korekcja gamma. Polecenie można znaleźć w zakładce Process -> Math
-> Gamma. Komenda pozwala na podgląd w czasie rzeczywistym modyfikacji, które wprowadza ten rodzaj
przekształcenia. Umożliwia to okno parametrów korekcji (Rysunek 2), na którym trzeba zaznaczyć pole
podglądu i manipulując suwakiem można zobaczyć jak zmienia się obraz. Transformacja zamienia
dotychczasową wartość pikseli obrazu poprzez tę wartość podniesioną do potęgi, która jest parametrem
przekształcenia: I{x,y) = I(x, y)1, gdzie I(x, y) to oryginalna wartość punktu o współrzędnych x i y, 7 to
wartość parametru, a I(x, y) to wartość po przekształceniu.

7.2 Wyrównanie histogramu


Wyrównanie histogramu jest przekształceniem, które powoduje, że histogram obrazu staje się bardziej
płaski (równy), dzięki czemu obraz staje się bardziej ostry, wyraźny. Przekształcenie ze względu na swój
nieliniowy charakter jest nieodwracalne i powoduje utratę informacji niesionej przez obraz.
Polecenie nie jest dostępne bezpośrednio w programie ImageJ. Można je znaleźć połączone z opcją
poprawy kontrastu Process -> Enhance Contrast. Instrukcja powoduje wywoływanie okna (Rysunek 3), w
którym można zaznaczyć opcję wyostrzenia obrazu poprzez wyrównanie histogramu. Okno opcji pozwala
również na modyfikację parametru saturacji, jednak należy pamiętać, że dla obrazów o wartościach w skali
szarości zmiana tego parametru nie będzie miała żadnych konsekwencji.
8. Geometryczne przekształcenia obrazu
Geometryczne przekształcenia obrazu to transformacje zbiorów punktów w inny zbiór punktów. Przykładem
takich przekształceń mogą być:

• przesuniecie,

• skalowanie,

• obrót,

• odbicie.

8.1. Przesunięcie
Przesunięcie to jedno z najbardziej podstawowych przekształceń geometrycznych. Polecenie wy-
konujące przesunięcie można wywołać z zakładki Image -> Transform -> Translate. W oknie
parametrów (Rysunek 4) można ustawić takie parametry jak przesunięcie na osi X, Y, czy podgląd po
przesunięciu. Operacja przesunięcia może być pomocna na przykład przy nakładaniu na siebie dwóch
obrazów.

8.2. Skalowanie
Polecenie znajduje się w zakładce Image -> Scalę ... Polecenie wywołuje okno z opcjami skalowania
(Rysunek 5). Opcje umożliwiają ustawienie takich parametrów skalowania jak wartość współczynnika
skalowania osi X i Y, czy podanie dokładnej wartości wysokości i szerokości obrazu po
przeskalowaniu. Dodatkowo można zdecydować jakiego rodzaju algorytm zostanie zastosowany do
wypełnienia wartości nowo powstałego obrazu.
8.3. Obrót
Obrót obrazu o dowolny kąt możliwy jest za pomocą polecenia Rotate, które znajduje się w zakładce
Image -> Transform -> Rotate. Okno które pojawia się po wywołaniu polecenia (Rysunek 6) umożliwia
podanie kąta, o który ma zostać wykonany obrót, algorytm interpolacji, czy wreszcie dopasowanie
rozmiaru obrazu do nowych wymiarów.
8.4. Odbicie
Do odbijania służą 2 polecenia znajdujące się w zakładce Image -> Transform. Są to polecenia Flip
Horizontally, które odbija obraz w pionie (skojarzenie z horyzontem jest bardzo na miejscu), oraz Flip
Vertically, które odbija obraz w poziomie. Polecenia nie wywołują dodatkowych okien i nie posiadają
parametrów.

Wykonanie ćwiczenia:

1. Wczytaj obraz Celi Colony dostarczony jako jeden z przykładowych obrazów razem z programem
ImageJ

2. Rozciągnij histogram obrazu wczytanego do programu w punkcie 1, tak aby wykorzystywał pełną
skalę.

3. Wykonaj kilka eksperymentów z parametrami okna opcji jasności i kontrastu. Załącz wyniki dwóch
przykładów i zinterpretuj wyniki.

4. Dobierz eksperymentalnie wartość parametru gamma dla obrazu z punktu 2, aby obraz Twoim
zdaniem wyglądał możliwie wyraźnie.

5. Wyrównaj histogram obrazu z punktu 2

6. Jakie widoczne różnice są pomiędzy obrazami:

• oryginalnym
• z punktu 2
• z punktu 4
• i z punktu 5

7. Przeskaluj obraz z punktu 2 z różnymi opcjami interpolacji, czy widzisz jakieś różnice?

You might also like