![]() |
Pełny kod źródłowy |
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.
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:
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?
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