Politechnika Świętokrzyska Laboratorium Cyfrowe przetwarzanie sygnałów Ćwiczenie 9 Przetwarzanie sygnałów wizyjnych. Cel ćwiczenia Celem ćwiczenia jest zapoznanie studentów z funkcjami pozwalającymi na realizację przekształceń jasności poszczególnych pikseli obrazu. Poznanie metod przekształcania z wykorzystaniem tablic LUT oraz histogramu. dr inż Robert Kazała
Przekształcenia punktowe Przekształcenia punktowe realizowane sa w taki sposób, że wymagane operacje wykonuje sie na poszczególnych pojedynczych punktach źródłowego obrazu, otrzymujac w efekcie pojedyncze punkty obrazu wynikowego. Operacje te charakteryzuja sie nastepujacymi cechami: Modyfikowana jest jedynie wartość (np. stopień jasności) poszczególnych punktów obrazu. Relacje geometryczne pozostają bez zmian. Jeżeli wykorzystywana jest funkcja sciśle monotoniczna (rosnaca lub malejaca), to zawsze istnieje operacja odwrotna, sprowadzajaca z powrotem obraz wynikowy na wejściowy. Jeżeli zastosowana funkcja nie jest sciśle monotoniczna, pewna cześć informacji jest bezpowrotnie tracona. Operacje te maja za zadanie jedynie lepsze uwidocznienie pewnych treści juz zawartych w obrazie. Nie wprowadzaja one żadnych nowych informacji do obrazu. Bezposrednio widocznym efektem przekształcen punktowych jest wiec zawsze zmiana skali jasności obrazu bez zmiany geometrii widocznych na obrazie obiektów. Przekształcenia punktowe służą różnym celom: poprawa jakości obrazu (kontrastu, jasności), negacja obrazu, wydobycie, uwypuklenie pewnych cech, zmiana histogramu, zmiana kolorów, arytmetyka na obrazach (dodawanie, odejmowanie), korekcja Gamma. Na drodze artymetycznej mozna wykonywac dowolne przekształcenia punktowe. Zakłada się wtedy, że dla każdej pary dyskretnych współrzednych x; y [0;N - 1] wskazujacych jeden piksel na obrazie źródłowym, obliczana jest pewna funkcja Ψ, w wyniku czego piksele obrazu wynikowego L'(x; y) sa obliczane na podstawie pikseli obrazu źródłowego L(x; y) poprzez wykonanie operacji wynikajacej z właściwości funkcji Ψ: L'(x; y) = Ψ(L(x; y)) Wykorzystanie tablic LUT Realizacja prostych operacji punktowych dla niewielkiej liczby punktów nie wymaga dużych nakładów obliczeniowych. W przypadku skomplikowanych funkcji wymagających dużej ilości operacji oraz obrazów o dużych rozdzielczościach, realizacja obliczeń dla każdego punktu wymaga dużych mocy obliczeniowych. Rozwiązaniem tego problemu jest wykorzystanie tzw tablic LUT (ang. Look Up Tables). Tablice te zawierają wejściowe jasności punktów i odpowiadające im jasności po wykonaniu przekształcenia. Obliczane są jednorazowo przed wykonaniem przekształcenia lub są stale przechowywane w pamięci. Następnie dla każdego punktu odnajduje się element o takiej samej jasności i zamienia się na odpowiadającą mu wartość po przekształceniu. W ten sposób nakład obliczeń, jeżeli mamy przygotowaną tablicę LUT zależy tylko od rozdzielczości obrazu. W ten sposób można dokonywać dowolnych przekształceń, nie tylko opisanych zależnościami matematycznymi.
Przykładowa tablica LUT Podstawowe przekształcenia Zmiana jasności obrazu Funkcja L' = L + dl Zmiana kontrastu obrazu Funkcja L' = k L (k > 1) Negacja obrazu Funkcja potęgowa Funkcja potęgowa wykorzystywana jest do nieliniowej zmiany jasności obrazu z wąskiego obszaru w szerszy lub odwrotnie. L'(x,y) = L(x,y) γ γ = 2 ekspansja gamma, zwiększenie kontrastu jasnych obszarów γ = 0.5 kompresja gamma, zwiększenie kontrastu ciemnych obszarów
Korekcja gamma Korekcja gamma jest wykorzystywana do usuwania zniekształceń jasności obrazu wprowadzanych przez urządzenia (np. monitor, skaner), poprzez zmianę kontrastu obrazu wejściowego. Operacja wykorzystywana do korekcji nieliniowej charakterystyki monitorów CRT gamma monitorów CRT ok. 2.2 korekcja gamma 1/2.2 Uwypuklanie wybranych poziomów szarości Przykładem przekształcenia uwypuklającego pewne cechy obrazu jest transformacja polegajaca na uwidocznieniu na wynikowym obrazie wyłacznie niektórych poziomów szarosci zródłowego obrazu z pominieciem wszystkich innych. Na tej zasadzie można wykrywać i uwidaczniać subtelne różnice w obrazach, na przykład w diagnostyce medycznej (wykrywanie i sztuczne podkreślanie subtelnych róznic poszczególnych narzadów i tkanek na zobrazowaniach rentgenowskich i ultrasonograficznych), a takze w kryminalistyce. Histogram Histogram jest graficznym sposobem przedstawiania rozkładu cechy. Składa się z szeregu prostokątów umieszczonych na osi współrzędnych. Prostokąty te są z jednej strony wyznaczone przez przedziały klasowe wartości cechy, natomiast ich wysokość jest określona przez liczebności (lub częstości) elementów wpadających do określonego przedziału klasowego. Inaczej jest to funkcja h(i): gdzie W praktyce oznacza to, że histogram zawiera informację na temat tego ile pikseli o danym poziomie jasności występuje na obrazie (w przypadku obrazu w odcieniach szarości) Często wykorzystuje się tzw. znormalizowaną postać histogramu - wszystkie wartości h(i) są dzielone przez ilość pikseli na obrazie. Otrzymana w ten sposób wielkość to gęstość prawdopodobieństwa wystąpienia na obrazie pikseli o odcieniu "i". Histogram można zdefiniować dla obrazów kolorowych. Otrzymujemy wtedy 3 histogramy po jednym dla danej składowej: R,G,B (lub HSV, YCrCb) lub histogram trójwymiarowy. Histogram jest bardzo użyteczny w przetwarzaniu obrazów. Wykorzystywany jest przy binaryzacji oraz do oceny jakości (dynamiki, kontrastu) obrazu. W idealnym przypadku wszystkie poziomy jasności w obrazie powinny być wykorzystane (i to najlepiej w miarę jednolicie), co oznacza, że histogram powinien rozciągać się od 0-255 (obraz w skali szarości). W przypadku gdy histogram obejmuje jedynie fragment dostępnego zakresu (wąski histogram) lub histogram nie jest jednolity (występują dominujące grupy pikseli) obraz ma dość słaby kontrast. Cechę tę można poprawić stosując tzw. rozciąganie albo wyrównywanie histogramu (histogram equalization).
Rozciąganie histogramu Konwersja zakresu wartości składowych tak, aby histogram obejmował wszystkie wartości składowych. Np. <4,198> => <0,255> LUT(i) = (i max /(v max -v min )*(i-v min )) gdzie i max - maksymalna możliwa wartość składowej w obrazie v max - maksymalna wartość składowej w obrazie v min - minimalna wartość składowej w obrazie Wyrównanie histogramu Operacja polegająca na zmianie położenia (wzdłuż poziomej osi odpowiadającej stopniom szarości poszczególnych pikseli) kolejnych słupków, zawierających zliczenia liczby pikseli o danej szarości. Intuicyjnie mówiąc równoważenie histogramu polega na zwiększaniu różnic jasności pomiędzy tymi pikselami w obrazie, które mają jasności często występujące. W efekcie operacja prowdzi do zwiększenia kontrastu obrazu. Operacja realizowana jest przez funkcję transformującą skonstruowaną na podstawie histogramu skumulowanego gdzie rk jasność wejściowa, sk jasność wynikowa, nj liczba pikseli o poziomie jasności rk n całkowita liczba pikseli w obrazie
Literatura Tadeusiewicz R., Korohoda P.: Komputerowa analiza i przetwarzanie obrazów, Społeczeństwo Globalnej Informacji, Kraków 1997. Zadania 1. Wykonać przedstawione podstawowe przekształcenia punktowe dla wybranych obrazów. 2. Wykonać przekształcenia wykorzystujące funkcję potęgową, dla różnych wartości parametru gamma. 3. Utworzyć funkcję wykorzystując a tablice LUT i wykonać przekształcenia punktowe z wykorzystaniem tablic LUT. 4. Zrealizować uwypuklanie wybranych poziomów jasności dla wybranych obrazów. 5. Utworzyć własną funkcję do tworzenia histogramu obrazu. 6. Wykonać przekształcenia punktowe na obrazie tworzące obraz jasny, ciemny oraz o małym kontraście i przeanalizować zmiany histogramu. 7. Utworzyć funkcje do rozciągania i wyrównywania histogramu. 8. Zrealizować rozciągnięcie i wyrównywanie histogramu dla wybranych obrazów.