rekonstrukcja trójwymiarowych struktur mózgu przy użyciu

34
Uniwersytet Warszawski Wydzial Matematyki, Informatyki i Mechaniki Grzegorz Furga Nr albumu: 209326 Rekonstrukcja trójwymiarowych struktur mózgu przy użyciu geometrycznego wzrostu obszarów Praca magisterska na kierunku INFORMATYKA Praca wykonana pod kierunkiem dr hab. Daniela Wójcika Instytut Biologii Doświadczalnej PAN im. Marcelego Nenckiego Marzec 2010

Upload: doque

Post on 11-Jan-2017

220 views

Category:

Documents


1 download

TRANSCRIPT

Uniwersytet WarszawskiWydział Matematyki, Informatyki i Mechaniki

Grzegorz FurgaNr albumu: 209326

Rekonstrukcja trójwymiarowychstruktur mózgu przy użyciu

geometrycznego wzrostu obszarów

Praca magisterskana kierunku INFORMATYKA

Praca wykonana pod kierunkiemdr hab. Daniela WójcikaInstytut Biologii Doświadczalnej PAN im. Marcelego Nenckiego

Marzec 2010

Oświadczenie kierującego pracą

Potwierdzam, że niniejsza praca została przygotowana pod moim kierunkiem i kwa-lifikuje się do przedstawienia jej w postępowaniu o nadanie tytułu zawodowego.

Data Podpis kierującego pracą

Oświadczenie autora (autorów) pracy

Świadom odpowiedzialności prawnej oświadczam, że niniejsza praca dyplomowazostała napisana przeze mnie samodzielnie i nie zawiera treści uzyskanych w sposóbniezgodny z obowiązującymi przepisami.

Oświadczam również, że przedstawiona praca nie była wcześniej przedmiotem pro-cedur związanych z uzyskaniem tytułu zawodowego w wyższej uczelni.

Oświadczam ponadto, że niniejsza wersja pracy jest identyczna z załączoną wersjąelektroniczną.

Data Podpis autora (autorów) pracy

Streszczenie

Wizualizacja i analiza danych są istotnym elementem badań neurobiologicznych. Atlasy mó-zgów dostarczają wspólnego kontekstu wynikom doświadczeń. Najbardziej rozpowszechnionesą atlasy dwuwymiarowe, w ostatnich latach obserwujemy jednak duże zainteresowanie atla-sami trójwymiarowymi. W pracy przedstawiono metody pozwalające na rekonstrukcję trój-wymiarowych struktur mózgu na podstawie dwuwymiarowych atlasów i ich implementację,na przykładzie komercyjnie dostępnego atlasu mózgu szczura. Główna część procesu rekon-strukcji wykorzystuje algorytm wzrostu obszarów przystosowany do segmentacji ilustracjiwektorowych. Przedstawiona implementacja wykorzystuje wyłącznie wolne oprogramowanie.

Słowa kluczowe

krzywe Beziera, meshing, vtk, wzrost obszarów, segmentacja

Dziedzina pracy (kody wg programu Socrates-Erasmus)

11.3 Informatyka

Klasyfikacja tematyczna

J. Computer ApplicationsJ.3 Life and Medical SciencesBiology and genetics

Tytuł pracy w języku angielskim

Reconstruction of three dimensional brain structures using geometric region growing

Spis treści

Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1. Dotychczasowe rozwiązania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.1. Przykładowe rozwiązania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.1.1. Wizualizacja danych — Atlas3D . . . . . . . . . . . . . . . . . . . . . 91.1.2. Przeglądanie połączeń — Paxinos 3d Viewer . . . . . . . . . . . . . . 91.1.3. Budowa atlasu — Atlas mózgu koszatniczki . . . . . . . . . . . . . . . 10

1.2. Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2. Zastosowane metody i implementacja . . . . . . . . . . . . . . . . . . . . . . 112.1. Parsowanie atlasu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.1.1. Szczegóły implementacyjne . . . . . . . . . . . . . . . . . . . . . . . . 142.2. Segmentacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2.1. Segmentacja grafu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2.2. Pełna rastryzacja ilustracji . . . . . . . . . . . . . . . . . . . . . . . . 152.2.3. Geometryczny wzrost obszarów . . . . . . . . . . . . . . . . . . . . . . 162.2.4. Szczegóły implementacyjne . . . . . . . . . . . . . . . . . . . . . . . . 17

2.3. Rekonstrukcja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.3.1. Szczegóły implementacyjne . . . . . . . . . . . . . . . . . . . . . . . . 18

3. Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.1. Wyniki i osiągnięcia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2. Wyzwania i dalsze drogi rozwoju . . . . . . . . . . . . . . . . . . . . . . . . . 213.3. Rekomendacje dotyczące przygotowania danych wejściowych . . . . . . . . . . 24

A. Dokumentacja użytkowa i opis instalacji . . . . . . . . . . . . . . . . . . . . . 25

B. Zawartość załączonej płyty CD . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3

Wprowadzenie

Motywacja pracy i przedstawienie problemu

Nowoczesne metody neurofizjologiczne, takie jak badania tomograficzne MRI i PET [20], czypomiary zewnątrzkomórkowych potencjałów elektrycznych [17] dają informację o rozkładzieaktywności mózgu w czasie i w przestrzeni. Ich interpretacja wymaga umiejscowienia wy-ników w precyzyjnym kontekście neuroanatomicznym. Służą do tego atlasy mózgów, któreklasyfikują i opisują lokalizacje wszystkich struktur wyróżnionych przez neuroanatomów.

Do niedawna dostępne były tylko atlasy dwuwymiarowe, które nadal są w powszechnymużyciu. W ostatnich latach obserwujemy duże zainteresowanie tworzeniem i stosowaniemtrójwymiarowych atlasów mózgów [16, 7, 2, 27]. Ich powstanie umożliwił gwałtowny rozwójtechnik informatycznych, w szczególności wzrost przepustowości sieci i pojemności dysków,dzięki czemu możliwe stało się przechowywanie dużej objętościowo informacji anatomiczneji histologicznej w postaci obrazów wysokiej rozdzielczości. Klasyczne atlasy dwuwymiarowetworzy się na podstawie skrawków mózgów. Mózg jest utwardzany, przy pomocy mikrotomucięty na plastry, które są następnie barwione by uwidocznić komórki nerwowe i umieszczanena szklanych płytkach. Po przetworzeniu na postać cyfrową na skrawkach zaznacza się gru-py określonych komórek odpowiadające nazwanym regionom mózgu. Takie ilustracje przy-gotowywane są najczęściej w wektorowych programach graficznych, stąd wektorowa postaćdanych źródłowych w opisanych w niniejszej pracy rozwiązaniach. Można też budować atlasw oparciu o obrazy MRI, jednak metody histologiczne oferują dużo wyższą rozdzielczość idokładność. Przytoczony opis pochodzi z projektu The Human Brain Atlas [25], ale te sametechniki stosuje się w przypadku zwierząt.

Powstają narzędzia, takie jak SMART Atlas [30], czy NESYS Atlas3D [16], które umożli-wiają analizę i porównywanie danych z różnych źródeł w trójwymiarowym kontekście atlasuanatomicznego. Jednak sam proces konstrukcji trójwymiarowego atlasu jest w ich przypadkujednorazowym przedsięwzięciem, opartym o komercyjne oprogramowanie. Brakuje otwartychnarzędzi, pozwalających na rekonstrukcję trójwymiarowych struktur na podstawie dwuwy-miarowych danych wektorowych. W niniejszej pracy zaprezentowano metodologię oraz im-plementujące ją narzędzie, które wypełnia tę lukę w dostępnej bazie oprogramowania neuro-informatycznego.

Jedną z wad dostępnych atlasów jest to, że ich treść została stworzona ręcznie, w ko-mercyjnych narzędziach, w sposób nie pozwalający na łatwą modyfikację zrekonstruowanychstruktur anatomicznych w przypadku znalezienia błędów lub zmiany danych wejściowych.Dostarczyło to inspiracji do stworzenia narzędzia, które pozwoli na rekonstrukcję trójwy-miarowych struktur na podstawie różnych źródłowych atlasów dwuwymiarowych w sposóbpozwalający na przejrzystą modyfikację i naprawę ewentualnych błędów, opartego o otwartetechnologie. Jako przykładowe dane wejściowe wykorzystano atlas Paxinosa i Watsona mózguszczura [23].

Szczur jest jednym z najpopularniejszych modeli zwierzęcych wykorzystywanych w neu-

5

robiologii. Na rynku atlasów mózgu szczura dominują dwie pozycje, atlas Swansona [26] orazatlas Paxinosa i Watsona [23]. Na potrzeby rekonstrukcji wykonanej w niniejszej pracy wy-brano atlas Paxinosa i Watsona z dwóch powodów. Po pierwsze, ten atlas jest najczęściejwykorzystywany w Pracowni Układu Wzrokowego, z którą współpracowano przy wykona-niu tej pracy magisterskiej. Po drugie, dysponowano dostępem do trójwymiarowego atlasunorweskiego NESYS opartego o ten atlas, co pozwoliło porównywać struktury otrzymaneautomatycznie przez opracowane narzędzie z ręcznymi rekonstrukcjami wykonanymi przezneuroanatomów w NESYS.

Atlas Paxinosa i Watsona zawiera ilustracje przedstawiające przekroje mózgu w płaszczy-znach koronalnej, sagitalnej i horyzontalnej (Rys. 1 i Rys. 2). Najwięcej cięć w tym atlasie,sto sześćdziesiąt jeden, podano w płaszczyźnie koronalnej.

Rysunek 1: Ilustracja płaszczyzn sagitalnej (A), horyzontalnej (B) i koronalnej (C) mózgu naprzykładzie szczura.

Każda ilustracja w atlasie zawiera kontury struktur i etykiety ze skrótami ich nazw. Ra-zem z wydaniem drukowanym rozpowszechniana jest płyta CD zawierająca cyfrową wersjęatlasu w formacie PDF, a także poszczególne przekroje w formacie EPS. Ułatwia to wyko-rzystywanie ich jako tła dla prezentacji wyników badań. Dwuwymiarowa postać rysunkównarzuca jednak pewne ograniczenia na możliwości prezentacji wyników oraz ich interpretacjiw kontekście neuroanatomicznym. Przy prezentacji zdjęć skrawków mózgu najlepsze spaso-wanie z atlasem osiągamy, kiedy skrawek pochodzi z idealnie równoległego cięcia. Ponadtotrzeba wybrać najbliższą, w osi sagitalnej, ilustrację. Gdyby atlas był w pełni trójwymiaro-wy, można by uzyskane dane dokładnie zorientować na tle struktur anatomicznych. Przewagaatlasu trójwymiarowego jest oczywista, jeśli uzyskane dane eksperymentalne również są prze-strzenne [20, 17].

Jednym z ważnych aspektów neuroinformatyki, na który w ostatnich latach kładzie sięcoraz większy nacisk, jest kwestia otwartości i wymiany danych i narzędzi. Postęp technolo-giczny w dziedzinie urządzeń pomiarowych pozwolił na rejestrację ogromnych ilości, niezwykleprecyzyjnych danych. Pozwala to na uprawianie nauki opartej o odkrycia, a nie hipotezy [3]:wyniki pozyskiwane w celu potwierdzania jednych hipotez, jeżeli są łatwo dostępne, mogąsłużyć kolejnym badaniom. Żeby takie podejście przynosiło pożądane rezultaty niezbędnejest zapewnienie dostępności i współpracy między rozmaitymi źródłami danych i narzędzia-mi ich analizy. W kontekście rozwoju trójwymiarowych atlasów mózgu istotne jest zarówno

6

Rysunek 2: Przykładowe ilustracje oraz odpowiadające im zdjęcia barwionych tkanek z atlasumózgu szczura Paxinosa i Watsona zawierające jądro brzuszne tylno-boczne (ang. ventralposteromedial nucleus, VPM ) z płaszczyzn koronalnej, sagitalnej i horyzontalnej.

7

tworzenie otwartych narzędzi atlasowych jak i dostarczanie otwartej treści. Dlatego celem tejpracy magisterskiej było opracowanie otwartego narzędzia do rekonstrukcji trójwymiarowychstruktur neuroanatomicznych na podstawie dwuwymiarowych wektorowych atlasów mózgu.

Opis zawartości pracy

W rozdziale 1 przedstawiono trzy przypadki przetwarzania atlasów dwuwymiarowych, któreprzedstawione w niniejszej pracy narzędzie mogłoby usprawnić i ułatwić.

W rozdziale 2 opisano zastosowane rozwiązania oraz ich implementację. W części 2.2 pozazastosowaną metodą segmentacji opisano też alternatywne metody, które rozważano podczaspierwszych eksperymentów i zbierania materiałów dotyczących poruszanej problematyki.

Rozdział 3 stanowi podsumowanie. Zostały w nim opisane potencjalne drogi rozwojuopisanego narzędzia oraz wnioski dotyczące przyszłych formatów atlasów wypływające z do-świadczeń zebranych podczas pracy nad projektem.

W dodatku znajduje się dokumentacja użytkowa narzędzia.

8

Rozdział 1

Dotychczasowe rozwiązania

Obecnie na świecie jest rozwijanych wiele narzędzi do wizualizacji i analizy danych neuro-biologicznych, ich listy można znaleźć na stronach organizacji International NeuroinformaticsCoordinating Facility [12] lub w przeglądzie literatury [19]. Atlasy ekspresji genów [5], po-łączeń między strukturalnych[7], czy wizualizacje danych wolumetrycznych [16] pozwalająprzeglądać dane w kontekście anatomicznych struktur mózgu i właśnie na tym aspekcie sku-piono się w niniejszej pracy.

W tym rozdziale przedstawimy kilka przykładowych rozwiązań, ze szczególnym uwzględ-nieniem źródła danych anatomicznych i procesu ich przetwarzania.

1.1. Przykładowe rozwiązania

1.1.1. Wizualizacja danych — Atlas3D

NESYS Atlas3D [16] to wieloplatformowe narzędzie umożliwiające wizualizację danych tomo-graficznych i histologicznych w połączeniu z trójwymiarowym atlasem. Na potrzeby narzędziazostał częściowo zrekonstruowany atlas mózgu szczura Paxinosa i Watsona [23] oraz atlas mó-zgu myszy Paxinosa i Franklina [21].

Ilustracje zostały wczytane do programu Adobe Illustrator, pod kierunkiem doświadczo-nych anatomów dokonano w ciągu sześciu miesięcy ręcznej segmentacji wybranych 62 struk-tur, które następnie przekształcono w trójwymiarowe siatki przy pomocy programu Amira[8]. Cały proces został opisany i udokumentowany [11], jednak nie opracowano metody powta-rzalnej i konfigurowalnej. Decyzje podejmowane w czasie ręcznej segmentacji miały charakternieodwracalnych zmian danych źródłowych. Wprowadzanie zmian lub poprawek wymagałobypowtórzenia całego procesu.

Program jest rozpowszechniany za darmo, jednak bez źródeł i przede wszystkim, bezzrekonstruowanego atlasu. Wielką zaletą programu jest możliwość wczytania przygotowanychprzez użytkownika danych w układzie współrzędnych atlasu w jednym z kilku standardowychformatów.

1.1.2. Przeglądanie połączeń — Paxinos 3d Viewer

Paxinos 3d Viewer [7] to przykład narzędzia ilustrującego hierarchię połączeń między po-szczególnymi regionami mózgu. Narzędzie powstało jako uzupełnienie i wizualizacja danych zprojektu CoCoMac (Collations of Connectivity data on the Macaque brain). Podobnie jak wprzypadku Atlas3D NESYSu, segmentację struktur wykonano ręcznie w programie do edycjigrafiki wektorowej Corel Draw na podstawie Atlasu Mózgu Rezusa Paxinosa i Watsona [14].

9

a) b)

Rysunek 1.1: Przykładowe narzędzia atlasowe. a) NESYS Atlas3D. b) Paxinos 3d Viewer.

W przypadku tego narzędzia, pominięto rekonstrukcję i rozciągnięto przekroje w płaszczyźniesagitalnej.

1.1.3. Budowa atlasu — Atlas mózgu koszatniczki

Powstający w ośrodku RIKEN [15] pod kierunkiem dr Iriki Atsushi atlas mózgu koszatniczkinie był w momencie pisania niniejszej pracy ukończony. Na jego przykładzie możemy jednakzobaczyć jakich narzędzi używa się w tego typu projektach.

Atlas powstaje w oparciu o zbierane na miejscu dane eksperymentalne, a segmentację ibudowę atlasu wspiera rozwijane wewnętrznie oprogramowanie. Jednak sama rekonstrukcjatrójwymiarowych modeli struktur jest realizowana ręcznie przy pomocy programu Amira.

1.2. Podsumowanie

Powyższe przykłady zostały wybrane by zilustrować kilka kwestii. Do rekonstrukcji używasię komercyjnego oprogramowania, mimo iż istnieje wolne oprogramowanie, które można wy-korzystać do realizacji tych samych celów. Ponadto widać, że podejmowane są wysiłki rekon-struowania atlasów dostępnych w postaci ilustracji wektorowych drogą ręcznej segmentacjiilustracji. Ułatwienie i zautomatyzowanie, choć w pewnym stopniu, tego procesu oraz przed-stawienie metody rekonstrukcji przy użyciu wolnego oprogramowania jest zasadniczym celempracy.

10

Rozdział 2

Zastosowane metody iimplementacja

W rozdziale opisano proces rekonstrukcji struktur podzielony na trzy fazy: przetwarzaniedanych źródłowych, segmentację i rekonstrukcję, oraz interfejs użytkownika zaimplemento-wanego narzędzia.

Aplikacja została zrealizowana w języku Python [6], obiektowym, dynamicznie typowanymjęzyku interpretowanym. Interfejs użytkownika korzysta z bibliotek GTK i został zbudowanyprzy pomocy narzędzia Glade. Spaja on główne komponenty systemu:

atlasparser moduł odpowiedzialny za przekształcenie atlasu do postaci wygodnej do dalszego prze-twarzania;

segmentation moduł implementujący wszelkie operacje na krzywych i właściwy algorytm wzrostuobszarów;

reconstruction klasy opakowujące VTK umożliwiające manipulowanie parametrami rekonstrukcji winterfejsie użytkownika.

Wszystkie rozwiązania pokazane są na przykładzie atlasu Paxinosa i Watsona, ale tylkokonwersje typów plików i specyficzne warunki identyfikacji metadanych są charakterystycznedla tego wydawnictwa, pozostałe techniki można zaadoptować dla innych atlasów.

Opisany dalej proces rekonstrukcji został schematycznie przedstawiony na rysunkach 2.1.

2.1. Parsowanie atlasu

W celu ułatwienia publikacji wyników doświadczeń neurofizjologicznych w kontekście atlasówmózgu są one rozpowszechniane razem z kopią elektroniczną. W przypadku rozważanegoatlasu mózgu szczura Paxinosa i Watsona dodatek elektroniczny zawiera kopię elektronicznącałego atlasu w formacie PDF oraz zbiór poszczególnych cięć w postaci plików EPS. Inneatlasy, na przykład wymienione wcześniej atlasy rezusa [22] i myszy [21], czytelnik otrzymujejako pojedyncze dokumenty w formacie PDF, wymagające dodatkowego przetwarzania.

Ilustracje to grafiki wektorowe, na które składają się tekstowe etykiety, krzywe ograni-czające struktury oraz meta informacje, takie jak układ współrzędnych. Celem etapu par-sowania jest usystematyzowanie tych informacji, czyli otrzymanie dla każdego cięcia listyetykiet tekstowych wraz z ich współrzędnymi oraz listy konturów. Odczytane informacje owspółrzędnych są wykorzystane do przekształcenia wszystkich współrzędnych do przestrzeniatlasu.

11

Rysunek 2.1: Proces rekonstrukcji struktury na przykładzie FrA (frontal association cortex)A: Na etapie parsowania na slajdach identyfikowane są metadane (wyróżnione na rysunkuwartości: etykieta i współrzędne referencyjne). B: Znormalizowane kontury. C, D: Segmentacjailustracji, czyli powiązanie obszaru z etykietą. E: Rekonstrukcja trójwymiarowych obiektów.F: Odpowiednio dobrane parametry pozwalają otrzymać powierzchnie o pożądanej gładkości.

12

Kontury struktur są odczytywane po konwersji do formatu SVG, otwartego standarduzapisu grafiki wektorowej opartego na XMLu. Ponieważ w procesie konwersji tekst zosta-je zamieniony na wektorowy opis kształtu czcionek następujące informacje odczytywane sąbezpośrednio ze źródłowych plików EPS:

• etykiety oznaczające struktury wraz ze współrzędnymi,

• współrzędne odcinków (łączących niektóre etykiety z ich właściwym położeniem),

• współrzędną w płaszczyźnie sagitalnej (odległość od Bregmy),

• ramka slajdu razem ze współrzędną w płaszczyźnie horyzontalnej.

Rysunek 2.2: Slajd z atlasu Paxinosa i Watsona z powiększonym fragmentem

Wykorzystując ostatnie dwie informacje przekształcono wszystkie współrzędne do prze-strzeni stereotaktycznej1. Od wszystkich współrzędnych odjęte zostały współrzędne środkówkrawędzi ramek slajdów, a następnie przemnożono przez ilość jednostek odpowiadających jed-nemu milimetrowi na ilustracji. Po uwzględnieniu współrzędnych w płaszczyźnie sagitalnejotrzymano dane w układzie stereotaktycznym, w milimetrach.

Część etykiet dotyczących niewielkich struktur jest od nich odsunięta, na opisywaną struk-turę wskazuje wtedy prosty odcinek. Jest to oczywiste dla czytającego atlas człowieka, auto-matyczne odzyskanie informacji o tych etykietach udało się przy zastosowaniu następującejstrategii. Etykietom leżącym bliżej odcinka niż określona progowa wartość przyporządko-wujemy współrzędne drugiego końca linii. Wartość została ustalona eksperymentalnie i jest

1Układ stereotaktyczny jest oparty o charakterystyczne punkty anatomiczne. Pierwsza oś układu to liniałącząca bregmę (przecięcie szwu wieńcowego i strzałkowego) i lambdę (przecięcie szwu strzałkowego z kątemszwu węgłowego). Płaszczyzna przecinająca tę oś, równoległa do linii łączącej otwory uszne, wyznacza płasz-czyznę horyzontalną. Drugą oś stanowi wspomniana linia międzyuszna, a trzecią prostopadła linia łącząca jąz bregmą. Atlas Paxinosa nie ustala jednoznacznego początku układu współrzędnych, podawane są odległo-ści od płaszczyzn koronalnych przecinających bregmę i oś międzyuszną, w płaszczyźnie horyzontalnej od ichpoziomów. [23]

13

zbliżona do szerokości dwóch znaków. Przy określaniu odległości do odcinków jako położe-nie etykiety próbowane są współrzędne początku napisu, jego końca i środka. W przypadkukiedy kilka etykiet spełnia określony warunek dla danego odcinka, wybierana jest ta leżącanajbliżej.

2.1.1. Szczegóły implementacyjne

Metadane odczytywane są z plików eps przy pomocy wyrażeń regularnych:

r e c o o r d s = re . compi le ( r ’ ( [0−9\ . ]+) ( [0−9\ . ]+) mo ’ )r e t e x t = re . compi le ( r ’ . ∗ \ ( ( [ ˆ \ ) ] + ) \ ) ( sh | ash | awsh |wsh) ’ )r e l i n e t o = re . compi le ( r ’ ( [0−9\ . ]+) ( [0−9\ . ]+) l i ’ )

W celu przetworzenia konturów wykonana została konwersja z formatu EPS do SVG.Wiele otwartych narzędzi o otwartym kodzie oferuje taką funkcjonalność, na przykład edytorwektorowy Inkscape i aplikacja DTP Scribus. Jednak ze względu na łatwość automatyzacjiwybrane zostało wsadowe narzędzie uniconvertor [1], od niedawna znajdujące się też w repo-zytoriach systemu Ubuntu. Polecenie konwersji jest konfigurowalne, więc można wykorzystaćdowolny program wsadowo przetwarzający pliki postscriptowe.

Do interpretacji plików SVG zastosowany został moduł xml.dom.minidom z bibliotekistandardowej Pythona. Wszystkie kontury na przetwarzanych slajdach mają niebieski od-cień, więc zostały rozpoznane po kolorze wyrażeniem regularnym. Kontury w plikach svgmają postać ścieżek, czyli list kolejnych punktów kontrolnych. Dla ułatwienia dalszej obróbkizostały znormalizowane do postaci kubicznych krzywych Beziera.

Rysunek 2.3: Krzywe i pozycje etykiet (widoczne jako czerwone punkty) odczytane z atlasu.

14

2.2. Segmentacja

Usystematyzowane informacje uzyskane w wyżej opisany sposób to dla każdego slajdu zbiórkrzywych i położeń etykiet identyfikujących struktury. Kontury nie są jednak w żaden sposóbuporządkowane. Brak jest informacji o związku między nimi a etykietami. Istotą tej fazydziałania programu jest właśnie skojarzenie etykiet struktur oraz krzywych z obszarami nailustracjach. W rozdziale opisano krótko dwa możliwe podejścia do segmentacji oparte obudowę grafu i pełną rastryzację oraz dokładniej adaptację metody wzrostu obszarów, którązaimplementowano.

2.2.1. Segmentacja grafu

Jednym z możliwych rozwiązań jest przekształcenie ilustracji na graf, a następnie znalezie-nie odpowiadającego mu grafu dualnego, czyli obszarów oddzielonych od siebie krawędziamigrafu. Można to zrobić odwiedzając wszystkie skierowane krawędzie grafu i powtarzając dlanich następujące kroki:

1. zdefiniuj nowy obszar,

2. zaznacz krawędź jako odwiedzoną,

3. przypisz do obszaru,

4. spośród krawędzi wychodzących z wierzchołka wybierz kolejną zgodnie z ruchem wska-zówek zegara,

5. jeśli nie była jeszcze odwiedzona powtarzaj kroki 2–5, w przeciwnym wypadku zakończdziałanie.

Ten algorytm pozwoli zdefiniować obszary w atlasie jako listy otaczających je konturów. Przyprzekształcaniu ilustracji, trzeba wziąć pod uwagę kilka problemów. Należy zacząć od podzie-lenia krzywych w miejscach gdzie stykają się z innymi. Ponieważ w atlasie krzywe często nieprzecinają się w sensie geometrycznym niezbędne będzie przyjęcie pewnych wartości pro-gowych. Po zbudowaniu grafu i odbudowaniu na jego podstawie list krawędzi otaczającychstruktury trzeba przyporządkować je do etykiet, do tego celu powinno wystarczyć sprawdza-nie, czy punkty leżą wewnątrz wielokątów utworzonych z przybliżeń list konturów.

Opisaną metodę pośrednio zastosowano w pracy Integrating Brain Data Spatially [30].Kontury zostały umieszczone w przestrzennym systemie bazodanowym ArcGIS, następnieskorzystano z jego funkcji build, która w uproszczeniu sprowadza się do opisanej procedury [4].Etykiety umieszczono w osobnej bazie danych i ponownie użyto funkcjonalności ArcGIS dozespolenia danych. Takie podejście pozwala zachować oryginalną wektorową naturę danych,a także generuje dane w tej samej postaci co nowo tworzone atlasy.

2.2.2. Pełna rastryzacja ilustracji

Pełna rastryzacja wektorowej ilustracji pozwoliłaby potencjalnie skorzystać z wielu istnieją-cych narzędzi do przetwarzania danych bitmapowych. Wadą takiego rozwiązania jest stratapełnej wektorowej informacji i związanie danych z określoną rozdzielczością, a przez to unie-możliwienie na przykład zmiany tego parametru dla różnych struktur.

15

2.2.3. Geometryczny wzrost obszarów

Wybrana metoda stanowi kompromis między rastryzacją a zachowaniem formatu wektoro-wego. Sama metoda seeded region growing to jeden z najprostszych algorytmów segmentacjiobrazów. W klasycznej wersji działa na obrazach rastrowych. Najpierw wybrany piksel ozna-cza się jako przynależny do obszaru, a następnie bada piksele sąsiadujące. Sąsiadujący pikseljest przyłączony do obszaru jeśli spełnia określony warunek. Taki warunek może dotyczyćnp. jasności.

Atlas opisuje kontury w postaci wektorowej, więc nie można bezpośrednio zastosowaćtechniki wzrostu obszaru. Zastosowane rozwiązanie pozwala na oszczędność postaci rastro-wania tylko krzywych w pobliżu rekonstruowanego obszaru. Sam przebieg algorytmu odpo-wiada opisanej wersji klasycznej. Początkowym pikselem jest etykieta z atlasu, a współrzędnesąsiadujące obliczane są zgodnie z zadaną rozdzielczością. Warunek przynależności jest na-stępujący: Piksele są dołączane dopóty, dopóki nie przetną się z jednym z konturów.

Przecięcia z krzywymi są obliczane przy wykorzystaniu dwóch właściwości krzywychBeziera [28]:

1. krzywa zawiera się całkowicie w otoczce wypukłej jej punktów kontrolnych;

2. każdą krzywą można podzielić na dwie inne tego samego stopnia (algorytm de Castel-jau) [29].

Warunkiem koniecznym dla uznania, że piksel przecina krzywą, jest przecięcie z jej otocz-ką wypukłą. Jeśli wysokość krzywej (wysokością nazwano krótszy bok prostokąta opisanegona krzywej) jest mniejsza niż założona rozdzielczość segmentacji sprawdzane jest przecięciepiksela z odcinkiem wyznaczonym przez krańcowe punkty kontrolne. W przeciwnym przy-padku krzywa jest dzielona, a wynikowe krzywe zastępują źródłową w zbiorze wszystkichkrzywych danej ilustracji.

Zaproponowana metoda pozwala na segmentację różnych fragmentów ilustracji w różnychrozdzielczościach bez konieczności pełnej rastryzacji. Krzywe nie znajdujące się w bezpośred-nim sąsiedztwie rekonstruowanego obszaru nie muszą być w ogóle przetwarzane, pomijającwstępne obliczenie wypukłej otoczki każdej z nich.

Rysunek 2.4: Fioletowe prostokąty reprezentują zidentyfikowaną granicę struktury. Fragmentkrzywej, którą przecinają ma wysokość mniejszą niż rozdzielczość segmentacji (szerokośćwidocznych prostokątów). Z kolei kontury widoczne poniżej mają otoczki (zielone wielokąty)większe i w kolejnej iteracji algorytmu segmentacji zostaną podzielone na mniejsze krzywe.

16

2.2.4. Szczegóły implementacyjne

Wszelkie operacje związane z odnajdywaniem przecięć krzywych, obliczaniem odległości iotoczek wypukłych wykorzystują operacje dostarczane przez moduł numpy, a w szczególnościnumpy.linalg. Sprawdzenie czy punkt zawiera się w wielokącie zaimplementowane jest przyzałożeniu, że sprawdzany wielokąt jest wypukły i polega na sprawdzeniu czy punkt leży potej samej stronie wszystkich krawędzi wielokąta. Sprowadza się to do sprawdzenia równościznaków odpowiednich iloczynów wektorowych.

def po in t inpo ly (P, p o l y l i s t ) :# assuming passed p o l y l i s t i s convexA = p o l y l i s t [−1]B = p o l y l i s t [ 0 ]s = s i gn ( c r o s s ( (B−A) , (P−A) ) )for p in p o l y l i s t [ 1 : ] :

A,B = B, pi f s i gn ( c r o s s ( (B−A) , (P−A) ) ) != s :return False

return True

Obliczanie wypukłej otoczki krzywej Beziera również jest bardzo proste. Otoczkę krzywejstanowi otoczka jej punktów kontrolnych. Jednak mimo iż kubiczne krzywe mogą posiadaćpunkty przegięcia i przecinać się same ze sobą, to w atlasie takie krzywe nie występują. Dlate-go przyjęto uproszczone założenie, że otoczkę krzywej stanowią jej cztery punkty kontrolne,chyba że jeden z nich mieści się wewnątrz trójkąta wyznaczonego przez pozostałe, wtedyotoczką jest ten trójkąt.

def convexhul l ( polygon ) :for p in polygon :

# remove f a i l s in numpy ( uses e q u a l i t y )t r i h u l l = f i l t e r (lambda x : x i s not p , polygon )i f any ( ( a r ray equa l (p , o ) for o in t r i h u l l ) ) :return t r i h u l li f po in t inpo ly (p , polygon ) :return t r i h u l l

return polygon

Poszukiwania krzywych potencjalnie przecinających badany piksel przyśpiesza użycie R-drzewa, czyli drzewa przedziałowego. To przestrzenna struktura danych umożliwiająca indek-sowanie danych w wielu wymiarach. Zastosowano moduł python-rtree udostępniający interfejsdo biblioteki libspatialindex.

class Curves( . . )def i n t e r s e c t s ( s e l f , v ) :

queue = s e t ( s e l f . r t r e e . i n t e r s e c t i o n ( v . bounds ( ) ) )while queue :

curve = s e l f . ob j s [ queue . pop ( ) ]i f obj . r e s o l u t i o n >Voxel . r e s o l u t i o n \and any ( ( curve . conta in s ( c ) for c in v . co rne r s ( ) ) ) :

# curve ’ s h u l l c on t a in s any o f v ’ s cornersnew1 , new2 = curve . s p l i t ( )

17

s e l f . remove ( curve )queue . add ( s e l f . add ( new1 ) )queue . add ( s e l f . add ( new2 ) )continue

i f any ( ( curve . i n t e r s e c t s ( e ) for e in v . edges ( ) ) ) :# curve as a l i n e segment i n t e r s e c t s any o f# v ’ s edgesreturn True

i f any ( ( v . coord [ 0 ] < s e l f . minx , \v . coord [ 0 ] > s e l f . maxx , \v . coord [ 1 ] < s e l f . miny , \v . coord [ 1 ] > s e l f . maxy ) ) :return True

return False

Wyjątkowo jest też potraktowana segmentacja bryły całego mózgu. Stworzona została, niewystępująca w atlasie, etykieta brain o współrzędnych poza mózgiem, tak że jej segmentacjaprzebiega od zewnątrz. Znaleziony zbiór danych jest negowany w trakcie fazy rekonstrukcji.

2.3. Rekonstrukcja

Za rekonstrukcję trójwymiarowych siatek odpowiada moduł VTK (Visualization Toolkit)[13], biblioteka graficzna implementująca algorytmy przetwarzania obrazów oraz wizualizacjidanych. Ponieważ rozwijana jest z myślą o wizualizacjach rzeczywistych danych doświadczal-nych wszystkie dostarczane metody operują na danych bitmapowych lub wolumetrycznych.Dlatego wynik segmentacji przygotowywany jest właśnie w formie wolumetrycznej.

Biblioteka VTK jest rozwijana pod kątem pracy z danymi medycznymi, dlatego na etapiesegmentacji przygotowywane są dane wolumetryczne w zadanej przez użytkownika rozdziel-czości. Do przekazania danych VTK wybrana została struktura vtkRectilinearGrid, pozwa-lająca na zachowanie wyższej rozdzielczości w płaszczyznach ilustracji, a mniejszej i zmien-nej rozdzielczości pomiędzy nimi. Przygotowana struktura danych jest przekazywana przezzdefiniowany przez użytkownika programu zestaw filtrów (algorytmów) dostarczonych przezbibliotekę VTK. Aplikacja pozwala na dostosowywanie ich parametrów oraz włączanie lubwyłączanie poszczególnych elementów procesu przetwarzania. Wybrane ustawienia możnazapisać i użyć później ponownie.

Jednym z ważnych założeń było umożliwienie współdzielenia danych z innymi narzędzia-mi. Modele mogą być zapisywane na dysku w postaci plików VRML. Ten format zostałwybrany ze względu na otwartość tego standardu, ale przede wszystkim dla zapewnieniazgodności z narzędziem wizualizacyjnym NESYS Atlas3D. To zadanie zrealizowane jest przypomocy klasy vtkVRMLExporter.

2.3.1. Szczegóły implementacyjne

Obsługę filtrów VTK zrealizowano w taki sposób by ławo było rozszerzać aplikację, o do-datkowe algorytmy z biblioteki VTK. W chwili pisania niniejszej pracy udostępnione dlainterfejsu użytkownika zostały następujące filtry:

18

Rysunek 2.5: Interfejs użytkownika, dostosowywanie parametrów rekonstrukcji i ich zapis.

• vtkContourFilter — przekształca dane wolumetryczne w siatkę,

• vtkSmoothPolyDataFilter — wygładza znalezioną płaszczyznę,

• vtkTriangleFilter — normalizuje wszystkie polygony siatki do trójkątów,

• vtkQuadricDecimation — obniża rozdzielczość siatki,

• vtkDecimatePro — j.w. inna wersja algorytmu,

• vtkPolyDataNormals — oblicza normalne znalezionej powierzchni.

W kodzie programu zostały zdefiniowane w następujący sposób:

[PipeElem ( vtk . vtkContourFi l ter , on=True ,

params=[Param( ’ SetValue ’ , [ 0 , 1 ] ) ,Param( ’ ComputeNormals ’ , [ Fa l se ] ) ,

] ) ,PipeElem ( vtk . vtkSmoothPolyDataFilter ,

params=[Param( ’ SetRe laxat ionFactor ’ , [ 0 . 5 ] ) ] ) ,PipeElem ( vtk . v t k T r i a n g l e F i l t e r , on=True ) ,PipeElem ( vtk . vtkQuadricDecimation ) ,PipeElem ( vtk . vtkDecimatePro ,

params=[Param( ’ SetTargetReduction ’ , [ 0 . 8 ] ) ,Param( ’ PreserveTopology ’ , [ Fa l se ] ) ,Param( ’ BoundaryVertexDeletion ’ , [ Fa l se ] ) ,Param( ’ S p l i t t i n g ’ , [ True ] )

] ) ,PipeElem ( vtk . vtkPolyDataNormals , on=True ,

19

params=[Param( ’ SetFeatureAngle ’ , [ 2 0 . ] ) ] ) ,PipeElem ( vtk . vtkPolyDataMapper , on=True ,

params=[Param( ’ S c a l a r V i s i b i l i t y ’ , [ Fa l se ] ) ] ) ,]

Na podstawie takich definicji przy starcie aplikacji generowany jest interfejs użytkownika.Dla każdego inicjalizowanego obiektu klasy PipeElem pierwszy argument to klasa z bibliotekiVTK, którą reprezentuje dany element, a drugi określa czy jest to obowiązkowy element pro-cesu rekonstrukcji, czy też decyzja o jego użyciu pozostaje w rękach użytkownika. Ostatnimparametrem jest lista metod reprezentowanej klasy, które kontrolują zachowanie algorytmu.Dla każdej metody podawana jest lista domyślnych wartości. Dla elementów PipeElem gene-rowane są rozwijalne panele konfiguracyjne z nazwą algorytmu, polem wyboru do włączaniai wyłączania elementu oraz listą metod. Dla każdej metody, instancji Param tworzona jestetykieta z nazwą metody oraz kontrolki do definiowania wartości parametrów. Typ kontrolkizależy od typu argumentu, dla liczb całkowitych i zmiennoprzecinkowych prezentowane sąpola tekstowe, a dla wartości logicznych pola wyboru.

VTK nie definiuje metod, przyjmujących parametry logiczne, zamiast tego dostarcza me-tody On() i Off(). Na przykład klasa vtkContourFilter posiada metody ComputeNormal-sOn() i ComputeNormalsOff(). Faktyczne nazwy metod do wywołania są więc konstruowanena podstawie konfiguracji i dokonanego przez użytkownika wyboru. Zaznaczenie pola wybo-ru przy parametrze bar klasy vtkFoo spowoduje wywołanie w czasie rekonstrukcji metodyvtkFoo.barOn().

Moduł rekonstrukcji jest wobec tego cienką nakładką na algorytmy VTK dostarczając ichabstrakcję i mechanizmy tworzenia interfejsu. Kod realizujący wywołania biblioteki wyglądanastępująco:

p i p e l i n e = f i l t e r (lambda p : p . on , s e l f . p i p e l i n e )vtksource = s e l f . s ou r c e

for i , p ipeelem in enumerate ( p i p e l i n e ) :vtkobj = pipeelem ( )vtkobj . SetInputConnect ion ( vtksource . GetOutputPort ( ) )vtksource = vtkobj

sk in = vtk . vtkActor ( )sk in . SetMapper ( vtksource ) . Update ( )

r endere r . AddActor ( sk in )

20

Rozdział 3

Podsumowanie

W pracy pokazano metody i implementujące je narzędzie pozwalające na automatyczną seg-mentację i rekonstrukcję istniejącego atlasu. Podczas opracowywania rozwiązania napotkanoszereg wyzwań, które wyznaczają kierunki w których można rozwijać zarówno zaprezento-wane narzędzie jak i metody. Przedstawione rozwiązania są w momencie składania niniejszejpracy aktywnie rozwijane w Pracowni Układu Wzrokowego instytutu biologii doświadczalnejim. M. Nenckiego PAN [18].

3.1. Wyniki i osiągnięcia

Podstawowym rezultatem jest opracowanie metody pozwalającej na w pełni automatycznąi powtarzalną rekonstrukcję trójwymiarowych struktur na podstawie wektorowych danychatlasowych. W przypadku jednoznacznie oznaczonych regionów udało się uzyskać wynikiporównywalne z ręcznie wspomaganymi rozwiązaniami (Rys. 3.1). Zaletą przedstawionegorozwiązania jest też możliwość szybkiej zmiany parametrów rekonstrukcji i segmentacji wprzypadku zmiany wymagań co do jakości wynikowych powierzchni lub edycji danych źró-dłowych. Opracowany proces jest też pierwszą otwartą implementacją nie bazującą na żadnymkomercyjnym oprogramowaniu.

Drugim wynikiem jest wektorowa adaptacja algorytmu wzrostu obszarów. Przydatnośćtej metody jest jest jednak bardzo ograniczona. Efektywna jest tylko w przypadku bardzospecyficznych warunkach, takich jak duża ilość danych wektorowych, których niewielka częśćotacza rekonstruowany obszar.

3.2. Wyzwania i dalsze drogi rozwoju

Największą wadą zaproponowanego rozwiązania jest zupełny brak możliwości edytowaniadanych źródłowych. Aby konkurować z metodami opartymi całkowicie na ręcznej obróbcedanych, przyszłe wersje oprogramowania będą musiały dostarczać jakiś mechanizm edycjikonturów i etykiet oraz wprowadzania nowych. Obecnie brak takich funkcjonalności w połą-czeniu z ograniczeniami metody segmentacji powoduje, że nie można zrekonstruować układukomorowego, reprezentowanego w atlasie jako obszary połączone pojedynczymi krzywymi lubprzez same krzywe (Rys. 3.3), zamiast niego rekonstruowany jest obszar wokół, czyli sąsiedniestruktury (Rys. 3.4). Ten sam problem występuje jeśli wybrana struktura w atlasie nie jestdokładnie zamknięta krzywymi na którymś ze slajdów.

W zaprezentowanym procesie konwersji zastosowano kompromis między wejściową re-prezentacją wektorową, a docelową i wykorzystywaną w fazie rekonstrukcji reprezentacją

21

Rysunek 3.1: Porównanie modelu VPM otrzymanego przy pomocy proponowanego rozwią-zania (wyżej) i VPM zrekonstruowanego w laboratorium NESYS (niżej). Żeby zwiększyćczytelność rysunku własną rekonstrukcję przesunięto o 1mm.

Rysunek 3.2: Model mózgu szczura zrekonstruowany przy użyciu opisanego narzędzia.

22

Rysunek 3.3: Układ komorowy (3V - 3rd ventrical) jest reprezentowany w atlasie jako od-cinki a nie zamknięte regiony i dlatego zastosowaną metodą wzrostu obszarów nie można ichpoprawnie zrekonstruować.

Rysunek 3.4: Próba rekonstrukcji fragmentu układu komorowego (3V). Na części slajdówbłędy segmentacji powodują, że zamiast pożądanego regionu otrzymano jego sąsiadów.

23

wolumetryczną. Pokazana eksperymentalna technika segmentacji, choć wydajna przy prze-twarzaniu pojedynczych struktur, niewątpliwie ustępuje wstępnemu zrastrowaniu wszystkichslajdów, jeśli dąży się do rekonstrukcji wszystkich struktur w identycznej rozdzielczości. Prze-kształcenie danych do postaci bitmapowej lub wolumetrycznej na jak najwcześniejszym eta-pie, otwiera możliwości skorzystania z rozmaitych narzędzi do przetwarzania i obrazowaniadanych medycznych.

Alternatywną ścieżką rozwoju mogłoby być podejście odwrotne i jak najpóźniejsza kon-wersja do formatu bitmapowego. Proces rekonstrukcji mógłby być oparty o implicit modeling[24], a wynikowy atlas byłby wierny danym źródłowym.

Problemem, który zupełnie pominięto w tej pracy jest kwestia taksonomii oraz wzajem-nych relacji opisywanych w atlasach struktur. To kontrowersyjne zagadnienie, nawet w obrę-bie badań jednego zwierzęcia, szczura, istnieje kilka różnych klasyfikacji. Atlas Swansona [26]używa innego nazewnictwa i podziału niż wykorzystany jako przykład w niniejszej pracyatlas Paxinosa i Watsona. Przyszłe wersje narzędzia niewątpliwie powinny oferować możli-wość prezentacji nazw struktur w formie drzewiastej, a także na odczyt i zapis takich metainformacji.

3.3. Rekomendacje dotyczące przygotowania danych wejścio-wych

Część przedstawionych metod dotycząca rekonstrukcji może być wykorzystana do budowynowych atlasów opracowywanych na podstawie barwionych cięć. Zebrane doświadczenia po-zwalają na wyciągnięcie wniosków dotyczących tego, jaki format byłby najwygodniejszy dotworzenia nowych atlasów.

Idealny jako format danych wejściowych jest format SVG [9], ze względu na otwartość,popularność i dobre wsparcie na wszystkich platformach. Dyskusyjna pozostaje kwestia me-tadanych, identyfikacji struktur na kolejnych slajdach, informacji o współrzędnej w płasz-czyźnie prostopadłej do cięć. Najprostszym rozwiązaniem mogłoby być zawarcie informacji owspółrzędnej w nazwie pliku, a struktury można by dopasowywać po kolorach. Kolorowaniestruktur zostało wykorzystane na przykład przy rekonstrukcji atlasu rezusa [7]. Wymaga onojednak dodatkowych narzędzi lub dokumentów utrzymujących powiązania kolorów z nazwa-mi struktur. Inną możliwością jest wykorzystanie infrastruktury metadanych w standardzieSVG. Do przechowywania dodatkowej współrzędnej można nadużyć atrybutu coverage stan-dardu metadanych DCMI [10] lub zdefiniować Profil Aplikacji dedykowany dla danych ste-reotaktycznych. W celu identyfikacji struktur można natomiast skorzystać z definiowanychdla każdego obiektu atrybutów id lub label, których bezpośrednią edycję umożliwia wieleedytorów wektorowych, na przykład Inkscape i Adobe Illustrator.

24

Dodatek A

Dokumentacja użytkowa i opisinstalacji

Zaimplementowane narzędzie działa pod kontrolą systemu Linux. Zależności aplikacji podanona przykładzie popularnej dystrybucji Ubuntu. Wymagane pakiety systemowe to:

• python

• python-numpy

• libvtk5

• python-vtk

• python-gtk2

• uniconvertor

Ponadto potrzebny jest moduł rtree, dostępny przez system instalacji modułów Pythona easyinstall. Po zainstalowaniu wymagań, aplikację uruchamia się skryptem main.py.

Rysunek A.1: Główne okno aplikacji z wybranymi do rekonstrukcji strukturami.

25

Pierwsze uruchomienie

Przy pierwszym uruchomieniu aplikacja wyświetli okno konfiguracyjne służące do ustawieniakatalogów roboczych. Należy ustawić katalogi przeznaczone na generowane pliki oraz lokali-zację źródłowego atlasu. Wybór zostanie zapisany w pliku konfiguracyjnym .rbaconverter wkatalogu domowym użytkownika.

Zakładka segmentacji

Przeglądarka struktur

Po lewej stronie, w zakładce Select and Segment znajduje się przeglądarka struktur. Zawieralistę wszystkich etykiet z atlasu i okno wyszukiwarki. Po najechaniu kursorem myszy naetykietę program wyświetli listę stron w atlasie na których występuje dana struktura. Jeśliużytkownik chce eksperymentować z parametrami segmentacji i rekonstrukcji można to zrobićbez zapisu struktury na dysku. Podwójne kliknięcie na dowolnej strukturze z listy uruchamiaproces segmentacji.

Lista struktur do rekonstrukcji

Selected structures Etykiety można przeciągać do listy struktur przeznaczonych do rekon-strukcji po prawej stronie. Upuszczając strukturę na już istniejącą można stworzyć grupęstruktur. Wtedy wszystkie zgrupowane etykiety zostaną zrekonstruowane jako jeden obiekttrójwymiarowy. Jest to przydatne w przypadku rekonstrukcji struktur wyższego rzędu, takichjak hipokamp, które w atlasie opisane są jako wydzielone regiony składowe.

Parametryzacja segmentacji

Kontrolką konfiguracyjną można sterować rozdzielczością rekonstruowanych obiektów w płasz-czyźnie koronalnej. Ostatnim elementem interfejsu jest przycisk Export selected, który powo-duje segmentację, rekonstrukcję i zapis do plików struktur umieszczonych na liście w prawejczęści okna.

Zakładka rekonstrukcji

Parametryzacja rekonstrukcji

Druga zakładka, Reconstruction preview, pozwala dostosować parametry rekonstrukcji. Znaj-duje się tam opisany wcześniej interfejs dla funkcjonalności biblioteki VTK. Składa się zrozwijanych paneli, na których można skonfigurować wykorzystywane algorytmy.

Zapis konfiguracji

Zestaw parametrów można zapisać i użyć później lub udostępnić innym. Po wciśnięciu przy-cisku Save i podaniu nazwy dla konfiguracji plik z ustawieniami zostaje zapisany w katalogudo którego trafiają zrekonstruowane obiekty. Poniżej przedstawiono zawartość przykładowegopliku z konfiguracją rekonstrukcji:

[ vtkSmoothPolyDataFilter ]s e t r e l a x a t i o n f a c t o r = 0.75

26

[ vtkDecimatePro ]s e t t a r g e t r e d u c t i o n = 0 .9boundaryver texde l e t i on = Falses p l i t t i n g = Truepre s e rve topo logy = True

[ vtkPolyDataNormals ]s e t f e a t u r e a n g l e = 15 .0

Podgląd rekonstrukcji

Obok panelu konfiguracyjnego znajduje się okno podglądu, w którym można oglądać zrekon-struowaną zgodnie z zadanymi parametrami strukturę. Przycisk Refresh powoduje ponownąrekonstrukcję wybranego regionu.

27

Dodatek B

Zawartość załączonej płyty CD

• gfurga mgr.pdf Praca magisterska w formacie PDF.

• rbaconverter.tar.bz2 Archiwum z kodem źródłowym zaimplementowanego rozwiązania.

29

Bibliografia

[1] Uniconvertor. http://sourceforge.net/projects/uniconvertor/.

[2] Whole brain catalog. http://wholebraincatalog.org, 2009.

[3] J.G. Bjaalie. INCF–new capability for global coordination in neuroinformatics. 2006.

[4] ArcGIS Documentation. How build (coverage) works.http://webhelp.esri.com/arcgisdesktop/9.2/index.cfm?TopicName=How Build (Co-verage) works.

[5] Allen Institute for Brain Science. Allen brain atlas: Mouse brain. http://mouse.brain-map.org/welcome.do.

[6] Python Software Foundation. Python programming language. http://www.python.org/.

[7] Bezgin G. Paxinos3d viewer. http://cocomac.org/WWW/paxinos3D/index.html.

[8] Visage Imaging GmbH. Amira. http://www.amira.com/.

[9] S.V. Graphics. 1.1 Specification. W3C Recommendation, 14, 2003.

[10] J. Hakala. Dublin core metadata initiative. CRIS 2000-Current Research InformationSystems, 2000.

[11] T. Hjornevik, T.B. Leergaard, D. Darine, O. Moldestad, A.M. Dale, F. Willoch, and J.G.Bjaalie. Three-dimensional atlas system for mouse and rat brain imaging data. Frontiersin Neuroinformatics, 1, 2007.

[12] INCF. Online resources. http://software.incf.org/search/?topic=digital%20atlasing,http://incf.org/resources/resources listing view?getTopic=Digital%20atlasing.

[13] Inc Kitware. Visualization toolkit. http://www.vtk.org.

[14] Bezgin G. Kotter R., Reid A.T. An introduction to the cocomac-paxinos-3d viewer.chapter 4 in: Paxinos g., huang x.-f., petrides m., toga a.w. (eds.) the rhesus monkeybrain in stereotaxic coordinates.

[15] RIKEN Lab for Symbolic Cognitive Development, BSI. Degu 3d atlas.http://www.brain.riken.jp/labs/scd/index.html.

[16] NESYS laboratory. Atlas 3d. http://www.nesys.uio.no/Atlas3D/.

[17] S. Łęski, D.K. Wójcik, J. Tereszczuk, D.A. Świejkowski, E. Kublik, and A. Wróbel. In-verse Current-Source Density Method in 3D: Reconstruction Fidelity, Boundary Effects,and Influence of Distant Sources. Neuroinformatics, 5(4):207–222, 2007.

31

[18] P. Majka and Furga G. 3d brain atlas reconstructor.http://www.neuroinf.pl/Members/pmajka/3d-brain-atlas-reconstructor-teaser.

[19] F. Nielsen. Bibliography on neuroinformatics. Rigshospitalet and Technicial Universityof Denmark, 2004.

[20] R.G. Paulter, A.C. Silva, and A.P. Koretsky. In vivo neuronal tract tracing usingmanganese-enhanced magnetic resonance imaging. Magnetic resonance in medicine,40(5):740–748, 1998.

[21] G. Paxinos and K.B.J. Franklin. The mouse brain in stereotaxic coordinates. AcademicPress, 2004.

[22] G. Paxinos, X.F. Huang, and A.W. Toga. The rhesus monkey brain in stereotaxic coor-dinates. Academic Press San Diego, 1999.

[23] G. Paxinos and C. Watson. The rat brain in stereotaxic coordinates. Academic press,2007.

[24] R. Schmidt, B. Wyvill, and E. Galin. Interactive implicit modeling with hierarchicalspatial caching. In Proceedings of the International Conference on Shape Modeling andApplications, pages 104–113. Citeseer, 2005.

[25] K.D. Sudheimer, B.M. Winn, G.M. Kerndt, J.M. Shoaps, K.K. Davis, A.J. Fobbs Jr.,and J.I. Johnson. The human brain atlas. https://www.msu.edu/ brains/brains/huma-n/index.html.

[26] L.W. Swanson. Brain maps: structure of the rat brain: a laboratory guide with printedand electronic templates for data, models and schematics. Elsevier Amsterdam, 1998.

[27] Washington University in St. Louis Van Essen Lab. Caret.http://brainvis.wustl.edu/wiki/index.php/Caret:Atlases.

[28] Wikipedia. Bezier curve. http://en.wikipedia.org/wiki/Bezier curve.

[29] Wikipedia. de casteljau’s algorithm. http://en.wikipedia.org/wiki/De Casteljau’s algorithm.

[30] I. Zaslavsky, H. He, J. Tran, M.E. Martone, and A. Gupta. Integrating brain dataspatially: spatial data infrastructure and atlas environment for online federation andanalysis of brain images. In 15th International Workshop on (DEXA’04), pages 389–393. Citeseer, 2004.

32