W domyślnej konfiguracji obu bibliotek nie ma przykładów jak sobie poradzić z ich połączeniem. Najlepiej w takim wypadku pobrać dodatkowe przykłady ze strony ITK, tzw. InsightApplications. Po rozpakowaniu przygotowujemy proces kompilacji z użyciem narzędzia CMake, w którym musimy zaznaczyć zmienną USE_VTK oraz USE_AUXILIARY. Po zakończonej kompilacji możemy zajrzeć do katalogu Auxiliary/vtk, w którym jest kilka prostych przykładów wspólnego wykorzystania VTK i ITK.
Poniżej przedstawiam fragment programu do segmentacji obrazu za pomocą algorytmu działów wodnych (ang. watershed). Przetwarzanie obrazu jest tutaj wykonywane przez ITK, a wizualizacje, które znajdują się poniżej zostały przygotowane w VTK.
DiffusionFilterType::Pointer diffusion = DiffusionFilterType::New();
diffusion->SetNumberOfIterations(20);
diffusion->SetConductanceParameter(2.0);
diffusion->SetTimeStep(0.0625);
GradientMagnitudeFilterType::Pointer gradient = GradientMagnitudeFilterType::New();
WatershedFilterType::Pointer watershed = WatershedFilterType::New();
watershed->SetLevel(0.25);
watershed->SetThreshold(0.01);
diffusion->SetInput( castFilter1->GetOutput() );
gradient->SetInput( diffusion->GetOutput() );
watershed->SetInput( gradient->GetOutput() );
Zrzuty ekranu prezentujące działanie algorytmu działów wodnych:


0 komentarze:
Prześlij komentarz