niedziela, 13 grudnia 2009

MedicalVolumeRenderer - aplikacja testowa do wizualizacji objętościowej

Pełny kod źródłowy
Ostatnim programem - przynajmniej jak na razie, który przygotowałem do demonstracji biblioteki KWWidgets jest MedicalVolumeRenderer. Jego głównym zadaniem jest interaktywne ustawianie parametrów wizualizacji objętościowej, o której pisałem w notatce: Wizualizacja objętościowa w VTK.

Budowa programu

MedicalVolumeRenderer ma podobną budowę jak programy opisywane ostatnio (MedicalContourMaker i MedicalSlicer). Główne okno programu jest zarządzane przez klasę vtkKWWindow. To ona zajmuje się obsługą menu, panelu bocznego oraz obszaru renderowania. Z nowych kontrolek, które pojawiły się w tym programie na szczególną uwagę zasługuje volumePropertyWidget widoczna na panelu jako Volume Apperance Settings. Po utworzeniu tej kontrolki przekazujemy do niej obiekt klasy vtkVolumeProperty. W ten sposób mamy dostęp do aktualnych parametrów renderowania obiektu i możemy je oczywiście dowolnie zmieniać. Interfejs graficzny kontrolki jest widoczny na poniższych zrzutach ekranu:





Warto również wspomnieć o kontrolce vtkKWColorPresetMenu widocznej na panelu jako Color Presets. Definiuje ona szereg zestawów kolorów, które mogą być ustawiane na poprzedniej kontrolce w sekcji Scalar Color Mapping.



Możliwości
  • Definiowanie skali kolorów dla odpowiednich wartości.
  • Ustawianie przezroczystości.
  • Kilkanaście predefiniowanych zestawów kolorów.
  • Nagrywanie animacji dla pola renderowania.
Przykładowe wizualizacje można obejrzeć poniżej:



Podsumowanie

Pomimo tego, że te same rezultaty można osiągnąć samemu programując ustawienia opcji renderowania (klasa: vtkVolumeProperty), to wygoda jaką dają nam dostępne w KWWidgets kontrolki może bardzo ułatwić przygotowanie profesjonalnego narzędzia do wizualizacji medycznej.

Kody źródłowe oraz wersję dla Windows można pobrać ze strony: link.

2 komentarze:

Anonimowy pisze...

Witam,
chciałam stworzyć program podobny do Pańskiego programu "MedicalVolumeRenderer", jednak nie mogę sobie poradzić z biblioteką KWWidgets, stąd moje pytanie, czy bibliotekę tę można stosować w programach napisanych w Javie?

Rafał Petryniak pisze...

W Javie nigdy nie sprawdzałem. Generalnie jeśli chodzi o bibliotekę KWWidgets to jej rozwój został już wstrzymany. Teraz firma Kitware we współpracy z kilkoma uniwersytetami z USA i innych krajów rozwija bibliotekę CTK (http://www.commontk.org/index.php/Main_Page), która pod spodem korzysta z Qt. Biblioteka ta zdobywa obecnie szerokie uznanie. Jednym z największych przykładów jej zastosowań jest nowy interfejs 3D Slicera (http://www.slicer.org/). Osobiście uważam, że teraz warto programować właśnie w CTK. W pozostałych bibliotekach i językach (poza C++) pewnie też da się coś zrobić, ale to będą rozwiązania niszowe i bez gwarancji wsparcia ze strony Kitware.

Prześlij komentarz