Small application for demonstrating the interaction between MITK, ITK and VTK (not necessarily useful).
| 26 | /// ITK and VTK (not necessarily useful). |
| 27 | /// |
| 28 | int main(int /*argc*/, char **argv) |
| 29 | { |
| 30 | // MITK: Read a .nrrd file, e.g. Core/Code/Testing/Data/Pic3D.nrrd from |
| 31 | // disk |
| 32 | const char *filename = argv[1]; |
| 33 | |
| 34 | mitk::Image::Pointer mitkImage; |
| 35 | try |
| 36 | { |
| 37 | mitkImage = mitk::IOUtil::Load<mitk::Image>(filename); |
| 38 | } |
| 39 | catch (const std::exception &e) |
| 40 | { |
| 41 | MITK_WARN << "Could not open file " << filename; |
| 42 | return EXIT_FAILURE; |
| 43 | } |
| 44 | |
| 45 | // ITK: Image smoothing |
| 46 | // Create ITK image, cast from MITK image |
| 47 | typedef itk::Image<short, 3> ImageType; |
| 48 | ImageType::Pointer itkImage = ImageType::New(); |
| 49 | mitk::CastToItkImage(mitkImage, itkImage); |
| 50 | |
| 51 | typedef itk::DiscreteGaussianImageFilter<ImageType, ImageType> FilterType; |
| 52 | FilterType::Pointer filter = FilterType::New(); |
| 53 | filter->SetInput(itkImage); |
| 54 | filter->SetVariance(2); |
| 55 | filter->SetMaximumKernelWidth(5); |
| 56 | |
| 57 | filter->Update(); // run filter |
| 58 | |
| 59 | // reimport filtered image data |
| 60 | mitk::CastToMitkImage(filter->GetOutput(), mitkImage); |
| 61 | |
| 62 | // VTK: Show result in renderwindow |
| 63 | vtkImageViewer *viewer = vtkImageViewer::New(); |
| 64 | vtkRenderWindowInteractor *renderWindowInteractor = vtkRenderWindowInteractor::New(); |
| 65 | viewer->SetupInteractor(renderWindowInteractor); |
| 66 | viewer->SetInputData(mitkImage->GetVtkImageData()); |
| 67 | viewer->Render(); |
| 68 | viewer->SetColorWindow(255); |
| 69 | viewer->SetColorLevel(128); |
| 70 | renderWindowInteractor->Start(); |
| 71 | |
| 72 | renderWindowInteractor->Delete(); |
| 73 | viewer->Delete(); |
| 74 | |
| 75 | return EXIT_SUCCESS; |
| 76 | } |
nothing calls this directly
no test coverage detected