Bartosz Paprzycki nr albumu: 201220



Podobne dokumenty
Operacje morfologiczne w przetwarzaniu obrazu

Program V-SIM tworzenie plików video z przebiegu symulacji

4.2. Program i jego konfiguracja

Michał Strzelecki Metody przetwarzania i analizy obrazów biomedycznych (3)

4.2. Ustawienia programu

Expo Composer Garncarska Szczecin tel.: info@doittechnology.pl. Dokumentacja użytkownika

Diagnostyka obrazowa

Cyfrowe przetwarzanie obrazów. Dr inż. Michał Kruk

Układy VLSI Bramki 1.0

I. Program II. Opis głównych funkcji programu... 19

Przetwarzanie obrazu

INSTRUKCJA UŻYTKOWNIKA PORTALU SIDGG

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows Vista

Tworzenie i modyfikacja modelu geologicznego

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

POPRAWIANIE JAKOŚCI OBRAZU W DZIEDZINIE PRZESTRZENNEJ (spatial image enhancement)

BIBLIOTEKA PROGRAMU R - BIOPS. Narzędzia Informatyczne w Badaniach Naukowych Katarzyna Bernat

Zaznaczanie komórek. Zaznaczenie pojedynczej komórki polega na kliknięciu na niej LPM

Komputery I (2) Panel sterowania:

PIPP

Instrukcja instalacji

Jak przygotować pliki gotowe do publikacji w sieci za pomocą DigitLabu?

Diagnostyka obrazowa

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows 7

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

Metody kodowania wybranych cech biometrycznych na przykładzie wzoru naczyń krwionośnych dłoni i przedramienia. Mgr inż.

Platforma szkoleniowa krok po kroku

Instrukcja obsługi programu Do-Exp

Grafika komputerowa. Zajęcia IX

Górnicki Mateusz 17681

Temat: Organizacja skoroszytów i arkuszy

Instrukcja Instalacji

Instrukcja do programu myshowup

Przekształcenia punktowe

Implementacja filtru Canny ego

Maskowanie i selekcja

Dodawanie grafiki i obiektów

1.1 Zakładka Mapa. Kliknięcie zakładki "Mapa" spowoduje wyświetlenie panelu mapy:

Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp. autor: Łukasz Chlebda

DARMOWA PRZEGLĄDARKA MODELI IFC

POMOC / INSTRUKCJA OBSŁUGI

E-geoportal Podręcznik użytkownika.

Robert Barański, AGH, KMIW MathScript and Formula Nodes v1.0

Instrukcja użytkownika ARSoft-WZ3

Tak przygotowane pliki należy umieścić w głównym folderze naszego programu. Klub IKS

Inventor 2016 co nowego?

Forex PitCalculator INSTRUKCJA UŻYTKOWNIKA

Wymiarowanie i teksty. Polecenie:

Podstawy technologii cyfrowej i komputerów

ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM)

Aplikacja projektu Program wycinki drzew i krzewów dla RZGW we Wrocławiu

Analiza obrazów - sprawozdanie nr 3

Generator Wniosków o Dofinansowanie dla Regionalnego Programu Operacyjnego Województwa Podlaskiego na lata Instrukcja instalacji

MS Word Długi dokument. Praca z długim dokumentem. Kinga Sorkowska

Tworzenie prezentacji w MS PowerPoint

UNIFON podręcznik użytkownika

MODELER MODUŁ KOREKCJI DYSTORSJI SOCZEWKI WERSJA ZEWNĘTRZNA UPROSZCZONA INSTRUKCJA OBSŁUGI PROGRAMU

Sage Migrator 2019.e Migracja do Sage 50c wersja 2019.a i 2019.b

KGGiBM GRAFIKA INŻYNIERSKA Rok III, sem. VI, sem IV SN WILiŚ Rok akademicki 2011/2012

Diagnostyka obrazowa

KATEDRA MECHANIKI I PODSTAW KONSTRUKCJI MASZYN. Instrukcja do ćwiczeń laboratoryjnych z elementów analizy obrazów

INSTRUKCJA OBSŁUGI ⓫ Dodatki

Generator Wniosków Płatniczych dla Programu Operacyjnego Kapitał Ludzki. Instrukcja Instalacji

9. OBRAZY i FILTRY BINARNE 9.1 Erozja, dylatacja, zamykanie, otwieranie

Formatowanie komórek

Operacje na gotowych projektach.

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS)

Ćwiczenie 6. Transformacje skali szarości obrazów

Rys. 1. Rozpoczynamy rysunek pojedynczej części

Zastosowanie Informatyki w Medycynie

Diagnostyka obrazowa

2017 Electronics For Imaging, Inc. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym

ROZDZIAŁ 11 - DODATKI SPIS TREŚCI

DesignCAD 3D Max 24.0 PL

1. Szybko o MSA dla narzędzi pomiarowych.

Tworzenie szablonów użytkownika

Przetwarzanie obrazu

Opis programu Konwersja MPF Spis treści

Instrukcja użytkownika aplikacji modernizowanego Systemu Informacji Oświatowej

Podstawy 3D Studio MAX

5.4. Tworzymy formularze

DARMOWA PRZEGLĄDARKA MODELI IFC

16) Wprowadzenie do raportowania Rave

Site Installer v2.4.xx

Animacja. Instrukcja wykonania animacji metodą klatek kluczowych. Autor: Bartosz Kowalczyk. Blender 2.61

Instrukcja obsługi ebook Geografia XXI wieku

Jak rozpocząć pracę? Mapa

RYSUNEK TECHNICZNY I GEOMETRIA WYKREŚLNA INSTRUKCJA DOM Z DRABINĄ I KOMINEM W 2D

INSTRUKCJE WIKAMP Dotyczy wersji systemu z dnia

Jak dodać własny szablon ramki w programie dibudka i dilustro

narzędzie Linia. 2. W polu koloru kliknij kolor, którego chcesz użyć. 3. Aby coś narysować, przeciągnij wskaźnikiem w obszarze rysowania.

Metaliczny button z deseniem.

Rysowanie precyzyjne. Polecenie:

Instrukcja procesu aktywacji oraz obsługi systemu Banku Internetowego dla BS Mikołajki

Rys.1. Uaktywnianie pasków narzędzi. żądanych pasków narzędziowych. a) Modelowanie części: (standardowo widoczny po prawej stronie Przeglądarki MDT)

Minimalna wspierana wersja systemu Android to zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4.

Transkrypt:

Uniwersytet Mikołaja Kopernika Wydział Matematyki i Informatyki Pracownia Metod Numerycznych i Przetwarzania Sygnałów i Obrazów Bartosz Paprzycki nr albumu: 201220 Praca magisterska na kierunku informatyka Wykorzystanie złożonych metod morfologii matematycznej w ekstrakcji obiektów i analizie kształtów dla obrazów biomedycznych Opiekun pracy dyplomowej dr Maria Berndt-Schreiber Pracownia Metod Numerycznych i Przetwarzania Sygnałów i Obrazów Toruń 2010 Pracę przyjmuję i akceptuję Potwierdzam złożenie pracy dyplomowej...... data i podpis opiekuna pracy data i podpis pracownika dziekanatu

2 Spis treści WSTĘP...3 Rozdział 1. Wprowadzenie do tematyki pracy...4 Rozdział 2. Opis metod...7 2.1. Podstawowe definicje...7 2.1.1. Sąsiedztwo...7 2.1.2. Morfologia matematyczna w przetwarzaniu obrazów...8 2.2. Algorytmy...11 2.2.1. Generowanie maski...11 2.2.2. Segmentacja...11 2.2.3. Wizualizacja...16 Rozdział 3. Interfejs użytkownika...19 3.1. Obszar wyświetlania obrazu...19 3.2. Panel obsługi...21 3.2.1. Dane...21 3.2.2. Przetwarzanie wstępne...21 3.2.3. Segmentacja...22 3.2.4. Wizualizacja...23 3.2.5. Język...25 3.3. Wymagania systemowe i sprzętowe...25 Rozdział 4. Testy aplikacji...27 4.1. Zestaw 1...27 4.1.1. Generowanie maski...27 4.1.2. Segmentacja i wizualizacja...27 4.2. Zestaw 2...33 4.2.1. Generowanie maski...33 4.2.2. Segmentacja i wizualizacja...33 Rozdział 5. Zastosowania...41 5.1. Zestaw 1...41 5.2. Zestaw 2...43 5.3. Zestaw 3...45 5.4. Zestaw 4...47 5.5. Zestaw 5...49 PODSUMOWANIE...51 Literatura...52

3 WSTĘP Morfologia matematyczna wykorzystywana jest z powodzeniem w przetwarzaniu obrazów. W medycynie ważną rolę odgrywają nowoczesne techniki obrazowania (np. za pomocą tomografów). Trójwymiarowe obrazy uzyskiwane przez te metody służą diagnostyce i planowaniu operacji. Jedną z zalet przetwarzania obrazów jest możliwość ekstrakcji interesującego nas obiektu, np. poprzez segmentację. Pomimo rozwinięcia wielu metod, przetwarzanie obrazów trójwymiarowych nie jest obecnie standardem w zastosowaniach klinicznych. Podczas tworzenia oprogramowania, stanowiącego integralną część pracy, skupiłem się na segmentacji naczyń krwionośnych metodą rozrostu obszaru oraz na analizie ich cech pomocnych w planowaniu leczenia wewnątrznaczyniowego. Praca składa się z pięciu zasadniczych rozdziałów. Po wprowadzeniu do tematyki znajduje się rozdział zawierający podstawowe definicje i opis użytych metod. Kolejny rozdział opisuje interfejs programu. Po nim znajdują się testy stworzonego oprogramowania oraz przykładowe zastosowania. Propozycje planów na przyszłość można znaleźć w podsumowaniu. Przedstawione w pracy zrzuty ekranu stworzonej aplikacji są skonwertowane do skali szarości i mają odwrócone kolory, aby poprawić ich czytelność w drukowanej wersji pracy. Źródłem obrazów użytych w pracy są ogólnodostępne strony z danymi medycznymi.

4 Rozdział 1. Wprowadzenie do tematyki pracy Morfologia matematyczna (MM) jest bardzo szybko rozwijającą się teorią. Posłużyła przede wszystkim do analizy i przetwarzania struktur geometrycznych bazując na teorii zbiorów. W swoich początkach została zdefiniowana dla obrazów binarnych. Później jednak rozszerzono definicje także dla obrazów w skali szarości i kolorowych (także dla obrazów wideo, grafów czy siatek wielokątów). Pozwoliło to MM znaleźć miejsce wśród metod przetwarzania obrazów. W morfologii matematycznej jest zdefiniowanych wiele operacji. Większość jednak bazuje na dwóch operacjach: erozji i dylacji. Operacje te wykonuje się przykładając w każdym punkcie obrazu element strukturujący (ES). Jest to pewien prosty kształt, który porównujemy z obrazem. Dobranie odpowiedniego ES jest kluczowe w wielu metodach morfologii matematycznej. Metody przetwarzania i analizy obrazów, związane z MM, mają zastosowanie w wielu dziedzinach nauki: m.in. kartografii, geologii, metalurgii, medycynie. W ostatniej z wymienionych dziedzin przetwarzanie obrazów odgrywa szczególną rolę. Diagnostyce medycznej potrzebne stały się odpowiednie algorytmy obrazowania narządów wewnętrznych. Wykrywanie nieprawidłowości, zmian lub obecności obcych struktur stało się nierozerwalnym elementem nowoczesnej medycyny. Dzięki obrazowaniu medycznemu lekarz ma możliwość bezinwazyjnie zajrzeć do wnętrza ciała. Stało się to możliwe najpierw przez skonstruowanie aparatów rentgenowskich i ultrasonograficznych. W dzisiejszych czasach dołączyły do tych urządzeń między innymi tomografy rentgenowskie oraz tomografy rezonansu magnetycznego. Obrazy uzyskane dzięki tomografii rentgenowskiej (computed tomography, CT), tomografii rezonansu magnetycznego (magnetic resonance imaging, MRI) czy pozytonowej tomografii emisyjnej (positron emission tomography, PET) są obrazami narządów wewnętrznych uzyskanymi za pomocą promieniowania elektromagnetycznego poza zakresem widzialnym (aparaty rentgenowskie, CT) lub przy użyciu innych zjawisk fizycznych (np. zjawisku jądrowego rezonansu magnetycznego w MRI czy rozpadu promieniotwórczego w PET). Uzyskane w ten sposób obrazy narządów różnią się od ich rzeczywistego wyglądu. Jest to niemałe wyzwanie dla lekarzy analizujących tego typu dane. Obrazy z tomografów (np. CT, MRI, PET) są przekrojem trójwymiarowych

5 organów. Na takich przekrojach zazwyczaj nie otrzymujemy obszarów różniących się tylko poziomem jasności. Wynika to ze złożonej struktury ludzkich organów oraz ze specyfiki samego urządzenia i procesu. Zbierane są informacje z pewnej objętości, więc wykonywane przekroje posiadają grubość. Nie można też zupełnie wyeliminować szumu, na który składa się jakość i czułość urządzenia pomiarowego, jak i warunki pomiaru. W konsekwencji czego jednorodne obszary, które obserwujemy na takich obrazach, składają się z wielu poziomów jasności. Diagnoza na podstawie obrazów z tomografów nie należy zatem do prostych. Często bywa bardzo subiektywna. Na wynik wpływa doświadczenie i wiedza lekarza ją przeprowadzającego. Nieraz nawet ograniczenia związane z postrzeganiem ludzkiego oka skutecznie uniemożliwiają przeprowadzenie odpowiedniej diagnozy. Z tego względu warto skorzystać z dodatkowych informacji, których może nam dostarczyć komputerowa analiza obrazów. Jedną z metod uzyskania takich informacji jest stworzenie modelu trójwymiarowego na podstawie danych z tomografu. Zamiast analizować przekroje narządów wewnętrznych, próbujemy uzyskać ich trójwymiarowy model. Dane w takiej postaci bardziej przypominają rzeczywiste narządy, pomagają w wizualizacji. Głównym sposobem uzyskiwania trójwymiarowych modeli jest segmentacja obszarów, którymi jesteśmy zainteresowani. Wykonujemy go w celu oddzielenia ważnych dla nas części obrazu od reszty. Operację tę można przeprowadzić na wiele sposobów. Wybór sposobu zależy od rodzaju, jakości danych i celu badania. [1] Istnieją różne podejścia do zagadnienia segmentacji wykorzystujące morfologię matematyczną. Jedną z metod jest zastosowanie podstawowych operacji morfologicznych. Podejście to stosowane jest z powodzeniem do segmentacji obszarów jednorodnych, o określonym rozmiarze. Często wykorzystywaną metodą jest transformacja wododziałowa. Łączymy w niej obszary o coraz wyższej wartości kwantyzacji. Zaczynamy segmentację w punktach o najniższym poziomie jasności lub w punktach wybranych przez użytkownika (zwanych markerami). [2] Innym podejściem jest zastosowanie transformacji top-hat i/lub bottom-hat. Operacja ta usuwa jasne (top-hat) lub ciemne (bottom-hat) obiekty na obrazie o określonym rozmiarze. Dzięki czemu możemy wyekstrahować interesujące nas struktury. [3]

6 Kolejnym sposobem segmentacji są operacje hit-miss. Definiuje się w nich struktury, które podczas przemieszczania ich po obrazie mają trafić w obiekt i w tło. Dzięki odpowiedniej definicji tych struktur możemy wysegmentować obiekty o określonym kształcie i na interesującym nas tle. [4] Ważną grupę algorytmów do segmentacji danych stanowią metody wykorzystujące rozrost obszarów (region-growing). Zaczynając od wybranego przez użytkownika punktu segmentujemy obszar przez dodanie sąsiednich punktów pod pewnymi warunkami. Algorytm ten nie operuje na wszystkich punktach obrazu. Dzięki czemu czas jego działa jest zazwyczaj krótszy niż metod przetwarzających wszystkie dostępne dane. [2, 5] W pracy chciałbym skupić się na segmentacji naczyń krwionośnych. Jest to ważne a zarazem skomplikowane zadanie. Ze względu na mały rozmiar wielu takich struktur i rozdzielczości wykorzystywanych urządzeń trudności sprawia nawet ich wizualizacja (powstają miejsca nieciągłości lub dochodzi do połączenia blisko położonych obiektów). Często potrzeba także innych informacji niż wygląd naczyń, np. w analizie przepływu krwi czy nawigacji cewnika w leczeniu wewnątrznaczyniowym. Procedury te wymagają znajomości, m. in. miejsc rozwidlenia naczyń krwionośnych czy ich średnicy. [6]

7 Rozdział 2. Opis metod 2.1. Podstawowe definicje Dwuwymiarowy obraz będziemy traktować jako dwuwymiarową tablicę. Elementy tej tablicy nazywane będą pikselami (pixel picture element). Obraz trójwymiarowy będziemy traktować jako trójwymiarową tablicę, a elementy takiej tablicy nazywać będziemy wokselami (voxel volume element). Elementy tablic odpowiadających obrazom przechowują wartość nazywaną poziomem kwantyzacji. Jest to wartość zarejestrowana przez odpowiednie urządzenie medyczne. W przypadku obrazów ośmiobitowych jest to liczba całkowita od 0 do 255 (256 wartości, 28). W innych przypadkach (dwunasto-, szesnastobitowych danych) zakres ten jest odpowiednio szerszy. Trójwymiarowe dane możemy traktować jako stos dwuwymiarowych obrazów. Element takiego stosu nazywać będziemy przekrojem. Rozmiar przekroju określa ilość kolumn i wierszy obrazu dwuwymiarowego. Położenie woksela na obrazie określone będzie przez trójkę: (wiersz, kolumna, przekrój). [7] 2.1.1. Sąsiedztwo Na trójwymiarowym obrazie każdy woksel (zakładając, dla uproszczenia, nieskończenie duży rozmiar danych) posiada sześciu sąsiadów, których położenie różni się najwyżej na jednej współrzędnej. Sześć najbliższych takich wokseli nazywanych jest 6-sąsiedztwem. Definicja 2.1 Niech x= x 0, x 1,..., x n Z n i y= y 0, y 1,..., y n Z na n-wymiarowym obrazie. Odległość D1 pomiędzy x i y jest zdefiniowana jako: n D1 x, y = y i x i, i=1 n będą punktami

8 x i odległość D pomiędzy y jest zdefiniowana jako: D x, y = Definicja 2.2 Niech punktu x= x 0,, x n max y x. i i i=1,..., n będzie punktem na obrazie. Sąsiedztwo V i1 x jest zdefiniowane jako: V i1 x ={ y D1 x, y i}, sąsiedztwo V i punktu x jest zdefiniowane jako: V i x ={ y D x, y i}. Definicja 2.3 Niech x= x 0, x 1, x 2 N-sąsiedztwo punktu x, n = 6, 26 jest zdefiniowane jako: będzie punktem na obrazie trójwymiarowym. N 6 x =V 11 x, N 26 x =V 1 x. Definicja 2.4 Dwa punkty x,y są n-przyległe, wtw. gdy oba punkty są w swoim n-sąsiedztwie. Definicja 2.5 N-ścieżka jest sekwencją punktów obrazu x 0,, x n 1, które są parami n-przyległe. Definicja 2.6 Zbiór X Z 3 każdych dwóch punktów w jest nazywany n-połączonym komponentem, jeśli dla X istnieje n-ścieżka w X pomiędzy tymi punktami. 2.1.2. Morfologia matematyczna w przetwarzaniu obrazów Niech X będzie n-wymiarowym binarnym obrazem. Niech ES będzie n-wymiarowym binarnym obrazem o mniejszych rozmiarach niż X. ES będziemy nazywać elementem strukturującym (structure element). Podstawowe operacje morfologii matematycznej działają w oparciu o przemieszczanie elementu strukturującego po całym obrazie i wykonywaniu odpowiednich operacji na zbiorach.

9 Definicja 2.7 Dylacja obrazu binarnego X przy użyciu elementu strukturującego ES jest zdefiniowana jako: def X ES = X b={x b x X, b ES }. b ES Erozja obrazu binarnego X przy użyciu elementu strukturującego ES jest zdefiniowana jako: def X ES = X b={z ES z X }. b ES Definicja 2.8 Otwarcie obrazu binarnego X przy użyciu elementu strukturującego ES jest zdefiniowane jako dylacja po erozji: def X ES = X ES ES. Zamknięcie obrazu binarnego X przy użyciu elementu strukturującego ES jest zdefiniowane jako erozja po dylacji: def X ES = X ES ES. Niech M będzie n-wymiarowym binarnym obrazem. Definicja 2.10 Dylacja geodezyjna o rozmiarze n dla obrazu markera X ze względu na maskę M, przy użyciu elementu strukturującego ES jest zdefiniowana rekurencyjnie jako: D Mn X =D M1 [ D n 1 X ], M gdzie D M0 X = X, a D 1 M X = X ES M Definicja 2.11 Rekonstrukcja morfologiczna przez dylację obrazu maski M z obrazem markera X jest zdefiniowana jako: R DM X =D Mk X, dla takiego k, że D Mk X =D k 1 X. M Definicja 2.12 Centroid C skończonego zbioru punktów zdefiniowany jako: C= x 1 x 2... x k. k x 1, x 2,, x k Z 3 jest

10 Definicja 2.13 Zbiory punktów E 6 i E 26 na obrazie binarnym trójwymiarowym są zdefiniowane jako: E 6=N 6 x, E 26 =N 26 x, gdzie punkt x jest początkiem układu współrzędnych. Ilustracja 2.1: Wizualizacja zbioru E 6. Źródło: opracowanie własne. Ilustracja 2.2: Wizualizacja zbioru Źródło: opracowanie własne. E 26.

11 2.2. Algorytmy 2.2.1. Generowanie maski Algorytm progowania opisany w pracy [8]. Wejście: H histogram badanego obrazu. Wyjście: p punkt progowania obrazu. 1. Narysuj prostą l na histogramie H od punktu, takiego, że H v max =max H v, v H do v max punktu v far =max v ; v H 2. Wybierz punkt p na histogramie, p [v max, v far ], który jest najbardziej oddalony od prostej l; 2.2.2. Segmentacja Algorytm segmentacji korzysta z punktu startowego i operuje na binarnym obrazie uzyskanym po progowaniu (generowaniu maski). Wykorzystywana jest metoda rozrostu obszaru opisana w pracy [6]. Zrezygnowałem z kierunkowego rozrostu z powodu generowania linii centralnej (Ilustracja 2.3). Metoda zapobiegająca wylewaniu obszaru pochodzi z opracowania B. Irvinga i innych[9]. Ogranicza ona wielkość obiektu stworzonego po dylacji. Po znalezieniu rozwidlenia segmentowana jest tylko jedna jego część. Segmentacja pozostałych jest zawieszana do momentu zakończenia przetwarzania aktualnej. W oryginalnej metodzie rozrostu obszaru wszystkie aktualnie występujące rozwidlenia przetwarzane są w tym samym czasie. Podejście to zostało zaproponowane przez S. Eiho i innych[10]. W pierwszej kolejności segmentowane są rozwidlenia zawierające większe obiekty, aby zmniejszyć artefakty wynikające z istnienia pętli w segmentowanym obiekcie. Porównaj Ilustracje 2.4 i 2.5. Metoda wykorzystana na Ilustracji 2.5 lepiej

12 opisuje topologię segmentowanego obiektu. Po zakończeniu procesu segmentacji wykonywana jest procedura korekcji położenia punktów linii centralnej opisana w pracy [11]. Algorytm segmentacji: Wejście: M Z 3 - maska, p M punkt startowy, zapobiegaj_wylewaniu wartość logiczna, największy_komponent rozmiar komponentu. Wyjście: L szkielet (linia centralna) wysegmentowanego obiektu. 1. S=[ p] ; 2. IF #S == 0 THEN zakończ; 3. C=, wybierz punkt r z listy S, który należy do największego obiektu i rozmiar obiektu zachowaj jako size; 4. IF zapobiegaj_wylewaniu największy_komponent THEN THEN usuń IF punkt size r z przejdź do 2. 5. Stwórz ES o rozmiarze size. 6. C=[ r ES M ] ; 7. C=R DM {r }, M =M C ; 8. IF #C == 0 THEN WHILE #C == 0 && size < największy_komponent THEN BEGIN zwiększ_rozmiar(size); zwiększ_rozmiar(es); C=[ r ES M ] ; M =M C ; END 9. IF #C == 0 THEN przejdź do 2. > S i

13 10. B=[ C E 2 M ] C ; 11. B=RMD C, 12. M =M C ; IF #B == 0 THEN przejdź do 2. 13. IF #ES > 2 THEN B= B E 27 M ; 14. L.add(centroid(B)); 15. CP = podziel_na_komponenty_połączone(b); 16. IF #CP > 1 THEN BEGIN FOREACH cp IN CP BEGIN S.add(centroid(cp)); L.add(centroid(cp)); END END ELSE S.add(centroid(B)); 17. Przejdź do 2. zwiększ_rozmiar: Wejście: zbiór S. Wyjście: zbiór S. 1. IF wartość rozmiaru S jest parzysta THEN S=S E 6 ; ELSE S=S E 26 ; podziel_na_komponenty_połączone: Wejście: zbiór S. Wyjście: lista CP.

14 1. i = 0; 2. wybierz nieoznaczony punkt CP i 3. z S ; = 26-połączony komponent zawierający punkt z; 4. wszystkie punkty należące do CP i oznacz numerem i; 5. IF istnieje nieoznaczony punkt THEN BEGIN zwiększ i; przejdź do 2. END Usuwanie największego komponentu: Wejście: M maska, ES element strukturujący. Wyjście: M maska. 1. M =M E 6 ; 2. M =M ES ; 3. CP = podziel_na_komponenty_połączone(m); 4. Usuń z M największy komponent z CP; Algorytm korekcji położenia linii centralnej: Wejście: L szkielet (linia centralna) wysegmentowanego obiektu. Wyjście: L szkielet (linia centralna) wysegmentowanego obiektu. 1. wybierz pierwszy punkt szkieletu z L; 2. znajdź punkty na brzegu obiektu, które znajdują się w płaszczyźnie prostopadłej

15 do aktualnie badanej części szkieletu; 3. ustaw położenie wybranego punktu szkieletu jako centroid punktów znalezionych w kroku 2; 4. wybierz kolejny punkt szkieletu i przejdź do 2. Ilustracja 2.3: Przykład stworzenia linii centralnej stworzonej w oparciu o metodę kierunkowego rozrostu obszaru. Szara strzałka wskazuje miejsce wystąpienia artefaktu. Źródło: opracowanie własne. Ilustracja 2.4: Przypadek zetknięcia się obiektów. Przykład kolejności tworzenia linii centralnej bez uwzględniania wielkości obiektu. Numery przy rozwidleniach oznaczają kolejność segmentacji. Źródło: opracowanie własne. Ilustracja 2.5: Przypadek zetknięcia się obiektów. Przykład kolejności tworzenia linii centralnej z uwzględnieniem wielkości obiektu. Numery przy rozwidleniach oznaczają kolejność segmentacji. Źródło: opracowanie własne.

16 2.2.3. Wizualizacja Przedstawienie wysegmentowanych danych odbywa się dzięki algorytmowi marching cubes. Jest to algorytm, który obraz składający się z wokseli zamienia na punkty w przestrzeni, które tworzą trójkąty. Dane w takiej formie przesyłane są do OpenGL (Open Graphics Library). Algorytm został zaadaptowany ze źródeł dostępnych na stronie Paula Bourke: Polygonising a scalar field[12]. Należy pamiętać, że wizualizacja jest tylko próbą przedstawienia prawdziwych obiektów. Uzyskane obiekty pochodzą z dyskretnych danych, więc wyglądają jak na Ilustracji 2.6. Dobierając inne parametry oświetlenia próbujemy nadać im bardziej rzeczywisty wygląd (Ilustracja 2.7).

17 Ilustracja 2.6: Wizualizacja wysegmentowanego obiektu z prostym oświetleniem. Źródło: opracowanie własne. Ilustracja 2.7: Wizualizacja wysegmentowanych danych z oświetleniem symulującym rzeczywisty obiekt. Źródło: opracowanie własne.

18

19 Rozdział 3. Interfejs użytkownika Interfejs programu EXTAN (Extraction and Analysis). Aplikacja została na pisana w języku C# przy użyciu narzędzia Microsoft Visual C# 2008 Express Edition. Ilustracja 3.1: Interfejs programu po wczytaniu obrazu. Źródło: opracowanie własne. 3.1. Obszar wyświetlania obrazu Znajduje się tu wizualizacja przetwarzanych danych. Dane wolumetryczne wyświetlane są formie przekrojów. Pomiędzy kolejnymi przekrojami nawigujemy za pomocą suwaka pod obrazem. Po prawej stronie suwaka znajduje się numer aktualnie wyświetlanego przekroju. Wybierając kursorem ten numer ukryjemy lub pokażemy suwak. Pod suwakiem znajdują się przyciski służące do zmiany powiększenia wyświetlanego przekroju. Wielkość aktualnego powiększenia podawana jest w lewym dolnym rogu okna. Wybranie tego obszaru powoduje przywrócenie oryginalnego powiększenia przekroju. Po prawej stronie wskaźnika powiększenia znajduje się pasek wyświetlania. Podawany jest na nim rozmiar i położenie obszaru ROI (region

20 of interest, obszar zainteresowania) w momencie jego ustalania oraz czas działania poszczególnych procedur. Czas podawany jest z dokładnością do 0,1 sekundy. Wybranie kursorem wyświetlanego czasu spowoduje jego ukrycie, do momentu rozpoczęcia nowego odliczania. Po lewej stronie suwaka znajduje się guzik przeznaczony do zmiany wyświetlanych danych. Jeśli stworzyliśmy wizualizację możemy przełączać się między widokiem przekrojów (2D), a wizualizacją wysegmentowanych danych (3D). W lewym górnym rogu obszaru wyświetlania znajduje się guzik włączenia lub wyłączenia możliwości zmiany obszaru zainteresowań. Zmieniany zostanie rozmiar w miejscu, które jest podświetlone na czerwono. Informacje na temat zmienianego obszaru podawane są na dole okna. Ilustracja 3.2: Interfejs programu podczas zmiany rozmiaru ROI. Źródło: opracowanie własne. W prawym górnym rogu obszaru wyświetlania znajduje się guzik pokazywania lub ukrywania panelu obsługi. Wybranie kursorem punktu na obrazie, lewym lub prawym klawiszem, zmienia odpowiednio: dolny lub górny próg poziomów kwantyzacji maski potrzebnej do procesu segmentacji.

21 3.2. Panel obsługi Panel obsługi znajduje się po prawej stronie okna programu. Podzielony jest na pięć zakładek. Do stworzenia pionowych zakładek wykorzystana została kontrolka TabControl 2 ze strony Micka Doherty[13]. 3.2.1. Dane Zakładka ta (Ilustracja 3.1) służy do wczytywania i zapisu surowych (raw) danych wolumetrycznych. Do poprawnego otwarcia surowego pliku wolumetrycznego należy podać format pliku: rozmiar przekrojów, ilość bitów przypadających na jeden woksel oraz kolejność bitów (endianness). Jeśli dane, które chcemy wczytać posiadają nagłówek, możemy go pominąć podając przesunięcie danych obrazowych względem początku pliku (jest to najczęściej rozmiar nagłówka). Możemy także zapisać dane w zmienionym rozmiarze (do rozmiarów ROI) lub zapisać pomniejszony plik. W przypadku pomniejszania pliku zostanie zapisany co drugi woksel w każdym wymiarze (każdy wymiar zostanie dwukrotnie zmniejszony). Wraz z zapisywanym plikiem zostanie utworzony plik z opisem formatu. Plik taki jest poszukiwany przez program w momencie otwarcia pliku. Jeśli zostanie znaleziony plik o nazwie odpowiadającej wczytywanemu plikowi z dodanym rozszerzeniem '.hdr', to informacje o formacie pliku zostaną nadpisane danymi z pliku opisu. 3.2.2. Przetwarzanie wstępne Zakładka ta (Ilustracja 3.3) służy przygotowaniu danych do segmentacji. Wyświetlany jest histogram całego obrazu wolumetrycznego. Czerwona linia odpowiada poziomowi kwantyzacji wskazywanego punktu na obrazie. Linie: żółta i niebieska określają odpowiednio: najniższą i najwyższą wartość progu poziomu kwantyzacji maski. Mamy możliwość normalizacji histogramu. Możemy automatycznie wygenerować maskę, a także pokazać lub ukryć wyświetlanie maski na obrazie. Użyty algorytm został przedstawiony w rozdziale 2.2.1.

22 Ilustracja 3.3: Interfejs programu. Zakładka Przetwarzanie wstępne. Źródło: opracowanie własne. Mamy możliwość usunięcia szumu z obrazu. Możemy ograniczyć rozmiar danych, na których pracujemy do rozmiaru ROI. W każdej chwili możemy powrócić do oryginalnego obrazu. 3.2.3. Segmentacja W tej zakładce (Ilustracja 3.4) wykonujemy segmentację danych. Metoda została opisana w rozdziale 2.2.2. Przed przystąpieniem do segmentacji musimy wskazać punkt startowy. Po wykonaniu jednej segmentacji, możemy dodać kolejne części przez wybranie nowych punktów startowych i ponownym rozpoczęciu procedury segmentacji. Wyświetlane jest położenie i poziom kwantyzacji wybranego punktu. Mamy możliwość włączenia i określenia parametrów funkcji zapobiegającej segmentacji obszaru należącego do dużych obiektów, które nie są przedmiotem naszego zainteresowania. W tym celu określamy największy rozmiar komponentu dozwolonego podczas segmentacji. Jeśli komponent przekroczy ustaloną wielkość, to proces zostanie zatrzymany. Możemy także usunąć z maski nieinteresujący nas obszar. Wykonujemy to automatycznie przez usunięcie największego komponentu połączonego lub ręcznie przez wskazanie obszarów do usunięcia. Należy wybrać rozmiar największego

23 komponentu określający największy rozmiar naczyń krwionośnych należących do maski. Po zakończeniu procedury segmentacji wyświetlana jest ilość części stworzonego szkieletu. Ilustracja 3.4: Interfejs programu podczas wybierania punktu startowego. Zakładka Segmentacja. Źródło: opracowanie własne. 3.2.4. Wizualizacja W tej zakładce (Ilustracja 3.5) tworzymy wizualizację wysegmentowanych danych. Przed wykonaniem tej procedury warto wprowadzić rozmiar woksela, aby można było poprawnie analizować dane. Domyślnie wszystkie rozmiary woksela (wysokość, szerokość, długość) ustawione są na 1mm. Liczona jest długość utworzonego szkieletu. Po zaznaczeniu części szkieletu liczona jest długość tej części, jej długość bez odcinka należącego do rozwidlenia i średnica odpowiadającej jej części wysegmentowanego naczynia. Mamy także możliwość włączenia lub wyłączenia wyświetlania szkieletu, obiektu lub szkieletu i obiektu (Ilustracja 3.6).

24 Ilustracja 3.5: Interfejs programu. Wizualizacja wysegmentowanych danych. Zakładka Wizualizacja. Źródło: opracowanie własne. Ilustracja 3.6: Interfejs programu. Wizualizacja obiektu i szkieletu (linii centralnej). Źródło: opracowanie własne.

25 3.2.5. Język W tej zakładce możemy zmienić język opisów wyświetlanych w aplikacji. Możemy wybrać wersję angielską lub polską. Ilustracja 3.7: Interfejs programu po zmianie języka na angielski. Zakładka Segmentacja. Źródło: opracowanie własne. 3.3. Wymagania systemowe i sprzętowe 32 bitowy system operacyjny Microsoft Windows XP, Vista lub 7. Pakiet redystrybucyjny Microsoft.NET Framework wersja 3.5. Co najmniej 1GB pamięci operacyjnej RAM. Zalecany procesor 900MHz lub szybszy.

26

27 Rozdział 4. Testy aplikacji Testy zostały przeprowadzone na dwóch zestawach danych. 4.1. Zestaw 1 Pierwszy zestaw pochodzi ze strony BrainWeb: Simulated Brain Database.[14] Jest to syntetyczny obraz naczyń krwionośnych mózgu. Romiar: szerokość: 181 pikseli, wysokość: 217 pikseli, głębokość: 181 pikseli. Rozmiar danych został pomniejszony w stosunku do oryginału. Każdy wymiar został dwukrotnie zmniejszony. 4.1.1. Generowanie maski Maska po wygenerowaniu (Ilustracja 4.2), zajęła prawie wszystkie poziomy kwantyzacji. Poza jej zakresem pozostały tylko woksele tła. Takie rozwiązanie może wydawać się poprawne, jednak należy pamiętać, że mamy do czynienia z danymi dyskretnymi. Wizualizując wyniki segmentacji po zastosowaniu takiej maski dostaniemy obraz jak na Ilustracji 4.3. Powstaną obiekty mniej przypominające naczynia krwionośne. Poprawiając maskę ręcznie i wybierając węższy zakres poziomów kwantyzacji należących do niej możemy uzyskać obraz jak na Ilustracji 4.4. 4.1.2. Segmentacja i wizualizacja Na Ilustracjach 4.4 do 4.6 widzimy wizualizację wysegmentowanych danych. Na Ilustracji 4.7 zaznaczony został punkt startowy algorytmu. Na Ilustracji 4.8 znajduje się przykład rozwidleń. Strzałka wskazuje miejsce przeskoku w miejscu nieciągłości danych. Na Ilustracji 4.9 możemy zaobserwować ograniczenia algorytmu. Duża strzałka pokazuje miejsce nieciągłości szkieletu. W obiekcie znajduje się pętla, jednak algorytm jej nie stworzy. Mała strzałka pokazuje miejsce, w którym szkielet znajduje się poza obiektem. Ograniczenie to jest wynikiem stosowania określonej wielkości elementu strukturującego. Jeśli ES byłby mniejszy, moglibyśmy dokładniej określić miejsce szkieletu w obiekcie. Jednak wydłużyłoby to działanie algorytmu i naraziło na wykrywanie większej ilości nieistniejących rozwidleń (mała krzywizna obiektu

28 mogłaby być uznana za rozwidlenie). Czas segmentacji na testowej maszynie wyniósł: 14 minut i 5,7 sekundy. Ilustracja 4.1: Dane syntentyczne. Oryginalny obraz. Źródło: opracowanie własne. Ilustracja 4.2: Dane syntetyczne. Obliczona maska. Źródło: opracowanie własne.

29 Ilustracja 4.3: Dane syntetyczne. Wizualizacja wysegmentowanych danych po obliczeniu maski. Widok obiektu. Źródło: opracowanie własne. Ilustracja 4.4: Dane syntetyczne. Wizualizacja wysegmentowanych danych po ręcznym poprawieniu maski. Widok obiektu. Źródło: opracowanie własne.

30 Ilustracja 4.5: Dane syntetyczne. Wizualizacja wysegmentowanych danych po ręcznym poprawieniu maski. Widok szkieletu. Źródło: opracowanie własne. Ilustracja 4.6: Dane syntetyczne. Wizualizacja wysegmentowanych danych po ręcznym poprawieniu maski. Widok obiektu i szkieletu. Źródło: opracowanie własne.

31 Ilustracja 4.7: Dane syntetyczne. Obraz po segmentacji. Zaznaczony punkt startowy. Źródło: opracowanie własne. Ilustracja 4.8: Dane syntetyczne. Wizualizacja wysegmentowanych danych. Widok obiektu i szkieletu. Widoczne rozwidlenia. Strzałka wskazuje przeskok w miejscu nieciągłości. Źródło: opracowanie własne.

32 Ilustracja 4.9: Dane syntetyczne. Wizualizacja wysegmentowanych danych. Widok obiektu i szkieletu. Duża strzalka pokazuje miejsce nieciągłości pętli. Mała strzałka pokazuje miejsce prowadzenia szkieltu poza obiektem. Źródło: opracowanie własne. Ilustracja 4.10: Obraz testowy 2. Widok oryginalnego obrazu i histogramu. Źródło: opracowanie własne.

33 4.2. Zestaw 2 Zestaw został pobrany ze strony VolVis.org[15]. Jest to angiografia rezonansu magnetycznego głowy. Rozmiar danych:szerokość: 256 pikseli, wysokość: 320 pikseli, głębokość: 128 pikseli. Dane nie zostały zmienione. 4.2.1. Generowanie maski Oryginalny obraz widzimy na Ilustracji 4.10. Patrząc na histogram zauważamy, że jego maksimum znajduje się w najniższych poziomach kwantyzacji. Oznacza to, że algorytm obliczania maski zawiedzie (Ilustracja 4.11). Ręcznie poprawiona maska przedstawiona jest na Ilustracji 4.12. Jeśli ograniczymy się tylko do fragmentu oryginalnego obrazu i przygotujemy ROI jak na Ilustracji 4.13, to zmieni się histogram obrazu i maska zostanie poprawnie obliczona (poprzez brak dużej ilości pikseli o najmniejszych wartościach kwantyzacji należących do tła, poza obrazem głowy). 4.2.2. Segmentacja i wizualizacja Na Ilustracjach 4.14 do 4.16 widzimy wizualizację wysegmentowanych danych, odpowiednio widok: obiektu, szkieletu, obiektu i szkieletu. Punkt startowy algorytmu segmentacji został zaznaczony strzałką na Ilustracji 4.12. Czas segmentacji wyniósł 3 minuty i 50,8 sekundy. Strzałka na Ilustracji 4.17 wskazuje przykład poprawnego rozwidlenia. Zdarzają się jednak miejsca, w których zaznaczone jest rozwidlenie, nie występujące w segmentowanym obiekcie. Dzieje się tak w miejscach, gdzie rozwidlenie zostało utworzone przez mała ilość wokseli i było wynikiem niedopasowania kształtu elementu strukturującego do obiektu. Przykład takiego rozwidlenia znajduje się na Ilustracji 4.18. Na Ilustracji 4.19 widać niepoprawne prowadzenie szkieletu (linii centralnej). Występuje ono w miejscu, gdzie obiekt jest bardzo mały (cienki, np. grubości jednego woksela). Wynika to z dopasowania wielkości elementu strukturującego do rozmiarów danej części obiektu (mały ES dzieli obiekt na małe części) i dyskretnego charakteru danych (trudność w dokładniejszym ustaleniu rozmiaru obiektu strukturującego). Na Ilustracji 4.20 znajduje się wybrany obszar zainteresowań oryginalnego

34 obrazu. Ilustracja 4.21 pokazuje efekt wykonania operacji usunięcia największego komponentu. Na kolejnej Ilustracji (4.22) widać efekt ponownego usunięcia największego elementu. Dzięki tym operacjom pozbyliśmy się dużych obiektów z maski, które nie były naczyniami krwionośnymi i mogły zakłócić przebieg segmentacji. Ilustracja 4.11: Obraz testowy 2. Widok niepoprawnej maski. Źródło: opracowanie własne. Ilustracja 4.12: Obraz testowy 2. Widok ręcznie poprawionej maski. Strzałka wskazuje punkt startowy segmentacji. Źródło: opracowanie własne.

35 Ilustracja 4.13: Obraz testowy 2. Wybrane ROI. Obliczona maska dla wybranego fragmentu. Źródło: opracowanie własne. Ilustracja 4.14: Obraz testowy 2. Wizualizacja wysegmentowanych danych. Widok obiektu. Źródło: opracowanie własne.

36 Ilustracja 4.15: Obraz testowy 2. Wizualizacja wysegmentowanych danych. Widok szkieletu. Źródło: opracowanie własne. Ilustracja 4.16: Obraz testowy 2. Wizualizacja wysegmentowanych danych. Widok obiektu i szkieletu. Źródło: opracowanie własne.

37 Ilustracja 4.17: Obraz testowy 2. Wizualizacja wysegmentowanych danych. Widok obiektu i szkieletu. Strzałka wskazuje przykład poprawnego rozwidlenia. Źródło: opracowanie własne. Ilustracja 4.18: Obraz testowy 2. Wizualizacja wysegmentowanych danych. Widok obiektu i szkieletu. Strzałki wskazują miejsca nieistniejących rozwidleń niepoprawnie wskazanych przez algorytm. Źródło: opracowanie własne.

38 Ilustracja 4.19: Obraz testowy 2. Wizualizacja wysegmentowanych danych. Widok obiektu i szkieletu. Niepoprawne prowadzenie szkieletu (linii centralnej). Źródło: opracowanie własne. Ilustracja 4.20: Obraz testowy 2. Wybrane ROI. Obliczona maska dla wybranego fragmentu. Źródło: opracowanie własne.

39 Ilustracja 4.21: Obraz testowy 2. Wybrane ROI. Strzałka pokazuje usunięty największy komponent. Źródło: opracowanie własne. Ilustracja 4.22: Obraz testowy 2. Wybrane ROI. Strzałka pokazuje usunięty największy komponent po kolejnym wykonaniu operacji usunięcia. Źródło: opracowanie własne.

40

41 Rozdział 5. Zastosowania 5.1. Zestaw 1 Zestaw został pobrany ze strony VolVis.org[15]. Jest to angiografia rezonansu magnetycznego głowy. Rozmiar danych:szerokość: 120 pikseli, wysokość: 160 pikseli, głębokość: 99 pikseli. Oryginalny obraz został pomniejszony do obszaru zainteresowań. Maska została poprawnie wygenerowana automatycznie. Czas segmentacji wyniósł 3 minuty i 1,2 sekundy. Wyniki segmentacji prezentują Ilustracje 5.2 i 5.3. Ilustracja 5.1: Zestaw 1. Obraz wybranego ROI wraz z histogramem. Źródło: opracowanie własne.

42 Ilustracja 5.2: Zestaw 1. Widok wysegmentowanego obiektu. Źródło: opracowanie własne. Ilustracja 5.3: Zestaw 1. Wysegmentowane dane. Widok obiektu i szkieletu. Źródło: opracowanie własne.

43 5.2. Zestaw 2 Zestaw został pobrany ze strony VolVis.org[15]. Jest to angiografia rotacyjna głowy pacjenta z tętniakiem. Rozmiar danych:szerokość: 178 pikseli, wysokość: 160 pikseli, głębokość: 92 pikseli. Oryginalny obraz był pomniejszony i wybrany został obszar zainteresowań. Wygenerowana automatycznie maska została poprawiona ręcznie ze względu na specyfikę danych. Czas segmentacji wyniósł 1 minutę i 25,8 sekundy. Wyniki segmentacji prezentują Ilustracje 5.5 i 5.6. Strzałka na ilustracjach wskazuje tętniaka. Ilustracja 5.4: Zestaw 2. Wybrany obszar zainteresowań obrazu. Źródło: opracowanie własne.

44 Ilustracja 5.5: Zestaw 2. Widok wysegmentowanego obiektu. Strzałka wskazuje tętniaka. Źródło: opracowanie własne. Ilustracja 5.6: Zestaw 2. Widok wysegmentowanego obiektu i linię centralną. Strzałka wskazuje tętniaka. Źródło: opracowanie własne.

45 5.3. Zestaw 3 Zestaw został pobrany ze strony Stefan Roettger's Dataset Collection[16]. Jest to angiografia tomografii rentgenowskiej głowy pacjenta z tętniakiem. Rozmiar danych:szerokość: 256 pikseli, wysokość: 256 pikseli, głębokość: 60 pikseli. Oryginalny obraz został pomniejszony do obszaru zainteresowań. Maska została poprawnie wygenerowana automatycznie. Na obrazie maski widoczne były obiekty należące do układu kostnego (Ilustracja 5.7). Większość z nich została usunięta z pomocą usuwania największego komponentu (porównaj Ilustracje 5.7 i 5.8). Czas usuwania największego komponentu: 2 minuty, 25 sekund. Czas segmentacji wyniósł 3 minuty i 21,8 sekundy. Wyniki segmentacji prezentuje Ilustracja 5.9. Część układu kostnego jest widoczna na wynikowym obrazie. Nie zaburzyło to jednak procesu segmentacji. Małą strzałką zostało oznaczone miejsce wystąpienia tętniaka. Ilustracja 5.7: Zestaw 3. Obraz z wygenerowaną maską. W masce znalazł się także układ kostny. Źródło: opracowanie własne.

46 Ilustracja 5.8: Zestaw 3. Obraz z nałożoną maską. Został usunięty największy komponent. Źródło: opracowanie własne. Ilustracja 5.9: Zestaw 3. Widok wysegmentowanego obiektu. Mała strzałka wskazuje miejsce wystąpienia tętniaka. Duża strzałka wskazuje miejsce wysegmentowania częsci układu kostnego. Źródło: opracowanie własne.

47 5.4. Zestaw 4 Zestaw został pobrany ze strony Chrisa Rordena [17]. Jest to angiografia rezonansu magnetycznego głowy. Na obrazie pozostawiono tylko naczynia krwionośne. Rozmiar danych:szerokość: 138 pikseli, wysokość: 128 pikseli, głębokość: 63 pikseli. Oryginalny obraz został pomniejszony. Wygenerowana automatycznie maska została poprawiona ręcznie ze względu na specyfikę danych. Czas segmentacji wyniósł 1 minutę i 16,6 sekundy. Wyniki segmentacji prezentują Ilustracje 5.11 i 5.12. Ilustracja 5.10: Zestaw 4. Obraz danych oraz histogram. Źródło: opracowanie własne.

48 Ilustracja 5.11: Zestaw 4. Obraz wysegmentowanych danych. Widok obiektu. Źródło: opracowanie własne. Ilustracja 5.12: Zestaw 4. Obraz wysegmentowanych danych. Widok obiektu i szkieletu. Źródło: opracowanie własne.

49 5.5. Zestaw 5 Zestaw został pobrany ze strony Marka Dowa[18]. Jest to angiografia rezonansu magnetycznego głowy. Rozmiar danych:szerokość: 245 pikseli, wysokość: 237 pikseli, głębokość: 100 pikseli. Wybrany został obszar zainteresowań. Maska została poprawnie wygenerowana automatycznie. Czas segmentacji wyniósł 7 minut i 19,5 sekundy. Wyniki segmentacji prezentują Ilustracje 5.14 i 5.15. Ilustracja 5.13: Zestaw 5. Wybrany obszar zainteresowań i histogram. Źródło: opracowanie własne.

50 Ilustracja 5.14: Zestaw 5. Obraz wysegmentowanych danych. Widok obiektu. Źródło: opracowanie własne. Ilustracja 5.15: Zestaw 5. Obraz wysegmentowanych danych. Widok szkieletu (linii centralnej). Źródło: opracowanie własne.

51 PODSUMOWANIE Udało się stworzyć przyjazny interfejs aplikacji do segmentacji obrazów trójwymiarowych. Oprócz ekstrakcji obiektów na obrazie, umożliwia on także analizę kształtów. Może pomóc w przygotowaniu diagnozy lub planowaniu operacji. Stworzony program poprawnie segmentował przykładowe obrazy. W przypadku specyficznych danych należy pamiętać o ręcznej poprawie wygenerowanej maski. Do dalszego wykorzystania oprogramowania należy poprawić wykorzystanie pamięci oraz zoptymalizować metody pod względem czasu działania. W metodzie segmentacji można próbować poprawić wykrywanie rozwidleń, rozwiązać problem tworzenia się pętli, poprawić usuwanie największego komponentu czy zmagać się z problemem stykających się obiektów. Można także pomyśleć nad zautomatyzowaniu procesu wskazywania punktu startowego segmentacji. Można także stworzyć oprogramowanie do wirtualnej endoskopii.

52 Literatura [1] Michał Strzelecki, Segmentacja tekstury obrazów z wykorzystaniem neuronowych sieci oscylacyjnych i metod statystycznych, Wydawnictwo Politechniki Łódzkiej, Łódź, 2004. [2] Jasjit S. Suri, S. Kamaledin Setarehdan and Sameer Singh (Eds), Advanced Algorithmic Approaches to Medical Image Segmentation, Springer, London, 2002. [3] Lixu Gu, Toyohisa Kaneko, Organs extraction using three-dimensional mathematical morphology, Signal Processing Proceedings, (1998), 405 408. [4] B. Bouraouia, C. Ronsea, J. Baruthiob, N. Passata, P. Germainc, Gray-level hitor-miss tranform based region-growing for automatic segmentation of 3D coronary arteries, International Symposium on Mathematical Morphology, (2007), 23 24. [5] C. Kirbas, F. Quek, A Review of Vessel Extraction Techniques and Algorithms, ACM Computing Surveys, 36, (2004), 81 121. [6] Y. Masutani, T. Schiemann, K. H. Höhne, Vascular Shape Segmentation and Structure Extraction Using a Shape-Based Region-Growing Model, Medical Image Computing and Computer-Assisted Interventation, 1496, (1998), 1242 1249. [7] Gabriele Lohmann, Volumetric Image Analysis, Wiley, Leipzig, 1998. [8] G.W. Zack, W.E. Rogers, S.A. Latt, Automatic measurement of sister chromatid exchange frequency, The Journal of Histochemistry and Cytochemistry, 25, (1977), 741 753. [9] B. Irving, P. Taylor, A. Todd-Pokropek, 3D segmentation of the airway tree using a morphoogy based method, Proc. of Second International Workshop on Pulmonary Image Analysis, (2009). [10] S. Eiho, H. Sekiguchi, T. Sugimoto, S. Urayama, Branch-based Region Growing Method for Blood Vessel Segmentation, XXth ISPRS Congress, (2004), 796801.

53 [11] S. Wesarg, E.A. Firle, Segmentation of vessels: the corkscrew algorithm, Proc. of SPIE Medical Imaging 2004, 3, (2004), 1609-1620. [12] http://local.wasp.uwa.edu.au/~pbourke/geometry/polygonise/ - Polygonising a scalar field (spr. dnia 20.05.2010). [13] http://dotnetrix.co.uk/ - Mick Doherty's.net Tips and Tricks (spr. dnia 20.05.2010). [14] http://mouldy.bic.mni.mcgill.ca/brainweb/ - BrainWeb: Simulated Brain Database (spr. dnia 20.05.2010). [15] http://www.volvis.org/ - VolVis.org, Datasets (spr. dnia 20.05.2010). [16] http://www9.informatik.uni-erlangen.de/external/vollib/ - Stefan Roettger's Dataset Collection (spr. dnia 20.05.2010). [17] http://www.cabiatl.com/mricro/mricro/render Chris Rorden, Volume Rendering the Cortex (spr. dnia 20.05.2010). [18] http://lcni.uoregon.edu/~mark/space_software/example_volumes.html Mark Dow, Example volumes for Space software (spr. dnia 20.05.2010).