3. OPERACJE BEZKONTEKSTOWE 3.1. Tablice korekcji (LUT) Przekształcenia bezkontekstowe (punktowe) to takie przekształcenia obrazu, w których zmiana poziomu szarości danego piksela zależy wyłącznie od jego pierwotnej wartości, a nie od jego otoczenia. Najprostsze przekształcenia tego typu opierają się na tzw. tablicach korekcji (LUT, Look-Up Tables, czasami określanymi też jako tablice przypisań). Są one przeprowadzane na obrazach monochromatycznych, a w przypadku obrazów barwnych niezależnie na każdym z kanałów. W tych procesach zamieniamy stare wartości poziomów szarości poszczególnych pikseli na nowe wartości według jakiejś określonej reguły. Najprostsza z tych operacji to Invert (rys. 3.1) w tym procesie reguła przypisania jest następująca: n = 255 - o gdzie n i o to odpowiednio stara i nowa wartość poziomu szarości danego piksela. Dzięki operacji Invert otrzymujemy negatyw obrazu. Rys. 3.1 Wykres LUT dla funkcji INVERT W bardziej skomplikowanych operacjach LUT nowa wartość piksela może być logarytmem, potęgą, pierwiatkiem itp. ze starej wartości. Można więc traktować LUT jako funkcję określającą relację między starymi (oś X na wykresie) i nowymi (oś Y) wartościami poziomów szarości. Przy takich operacjach konieczne jest zaokrąglenie uzyskanych wartości oraz normalizacja - skalowanie do przedziału 0-255. Przykładowo procedura logarytmowania wygląda następująco: n = round [log (o)* (255/log(255))]
Rys. 3.2 Obraz, jego negatyw, i ich histogramy Rys. 3.3 Obraz RGB i jego negatyw (funkcja Invert) Także operacje zmiany jasności i kontrastu obrazu można potraktować jako funkcje LUT. Zmniejszanie lub zwiększanie jasności polega na odejmowaniu lub dodawaniu stałej liczby do poziomów szarości wszystkich pikseli obrazu. Piksele, których poziomy
szarości w wyniku takiej operacji przekroczyłyby dopuszczalny zakres uzyskają poziomy szarości równe 0 lub 255. Rys. 3.4 Zmiana jasności jako przekształcenie typu LUT Rys.3.5. Zmiana kontrastu jako przekształcenie typu LUT (rozciąganie histogramu)
Rys. 3.6 Obraz oryginalny (na górze) oraz obraz po rozjaśnieniu (w środku) i zwiększeniu kontrastu (na dole) oraz ich histogramy.
W ImageJ kilka procedur LUT jest w menu Process: Math (Gamma, Log, Square, Square Root). Szczególnie przydatna jest korekcja Gamma - wykorzystywana jest do rozjaśniania ciemnych partii obrazu. Rys. 3.7 Wykresy LUT dla kilku wartości parametru gamma. Rys. 3.8 Obraz z rys. 3.6 po przekształceniu funkcją Gamma (0.5), oraz jego histogram.
3.2 Wyrównywanie histogramu Rys. 3.9 Słabo skontrastowany obraz komórki oraz efekt rozciągania i wyrównywania histogramu.
Rys. 3.10 Wyrównywanie histogramu daje szczególnie dobre efekty wówczas, gdy mamy do czynienia z obrazami zawierającymi obiekty o wyraźnych konturach. Rozciąganie histogramu (kontrast) może być zastosowane przy słabo skontrastowanym obrazie, czyli takim, który zawiera niewykorzystane poziomy szarości. Poszczególne słupki histogramu zostają od siebie odsunięte, natomiast liczba pikseli w słupku pozostaje bez zmian. W operacji wyrównywania histogramu (Enhance histogram: equalization) program dąży do tego, aby równoważyć ilość pikseli przypadających na dany poziom szarości. W praktyce powoduje to nie tylko bardziej równomierne rozłożenie histogramu, ale również sumowanie się niektórych słupków z wyjściowego histogramu. 3.3 Operacje arytmetyczne Ponieważ obrazy cyfrowe są w istocie tablicami z liczbami (macierzami), to można na nich przeprowadzać normalne operacje matematyczne. Można do wartości poszczególnych pikseli dodawać lub odejmować jakąś liczbę, albo je mnożyć lub dzielić przez liczbę, można też przeprowadzać takie operacje arytmetyczne na dwóch obrazach. Operacja dodawania obrazów (Add) może być wykorzystana gdy mamy do czynienia z serią obrazów tej samej komórki sfotografowanych na różnych głębiach ostrości, a chcemy uzyskać obraz wynikowy, przedtawiający sylwetkę sprowadzoną do jednej płaszczyzny. Możemy też w tym celu wykorzystać funkcje MIN lub MAX - w pierwszym przypadku w obrazie wynikowym znajdzie się niższa wartość z odpowiadających sobie położeniem pikseli w obrazach wyjściowych, w drugim przypadku wyższa z dwóch wartości. Inne przykład zastosowania tych operacji to sumowanie serii obrazów uzyskanych przy słabym sygnale, na przykład obrazów fluorescencyjnych. Odejmowanie (Subtract) jest przydatne, gdy chcemy znaleźć różnice między dwoma podobnymi obrazami, na przykład obrazami przedtawiającymi ruch jakiegoś obiektu. Efekty operacji arytmetycznych muszą być zaokrąglone do liczb naturalnych oraz normalizowane (skalowane) do przedziału od 0 do 255. W ImageJ odpowiednie operacje wykonywane są przez Image Calculator (menu: PROCESS). Wbudowany w program Kalkulator nie wykonuje skalowania, dlatego do dodawania lepiej używać pluginu Calculator Plus (Plugins - Analyze). Najczęściej używane funkcje kalkulatora przy obrazach barwnych i szarych to Add, Subtract, Max i Min. Kalkulator oferuje również operatory logiczne, które mają zastosowanie do obrazów binarnych.
3.11 Operacje arytmetyczne na obrazach. Na górze obrazy oryginalne, w środkowym rzędzie dodawanie bez skalowania (po lewej) i ze skalowaniem, na dole funkcje MIN i MAX. Skalowanie polega na dopasowaniu wynikowych wartości do dopuszczalnego przedziału poziomów szarości (0-255). W przypadku dodawania obrazów skalowanie jest równoznaczne z wyliczenienie średniej arytmetycznej. W ImageJ operacje arytmetyczne mogą być przeprowadzane przy pomocy wbudowanego kalkulatora obrazów (menu Process, Image Calculator), przy pomocy pluginu Calculator Plus (który pozwala na skalowanie wynikowych obrazów), oraz przy pomocy funkcji Z Project (menu Image - Stacks), która pozwala na
przeprowadzenie operacji matematycznych (Average, Max, Min Intensity, Sum, Medium, Standard Deviation) na dowolnej liczbie obrazów połączonych w stos. 3.12 Seria skrawków optycznych z mikroskopu konfokalnego i ich zrzut na jedną płaszczyznę przy pomocy funkcji Z Project. Po lewej opcja Average (średnia) po prawej Maximum.