ITK 实现图像数据的读取,然后通过连接器把ITK读取的图像数据传输到VTK 然后进行显示。
#include "itkImage.h"
#include "itkImageFileReader.h"
#include "itkImageToVTKImageFilter.h"
#include "itkJPEGImageIOFactory.h"#include "vtkSmartPointer.h"
#include "vtkImageViewer.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkAutoInit.h"
VTK_MODULE_INIT(vtkRenderingOpenGL2); // VTK was built with vtkRenderingOpenGL2
VTK_MODULE_INIT(vtkInteractionStyle);
#include "vtkImageFlip.h"
//ITK and VTK to show picture test
int main(int argc, char **argv)
{typedef itk::Image<unsigned char, 2> ImageType;//the type of pictypedef itk::ImageFileReader<ImageType> ReaderType; //the class of read pictypedef itk::ImageToVTKImageFilter<ImageType> ConnectorType; //connenct itk and vtkReaderType::Pointer reader = ReaderType::New();ConnectorType::Pointer connector = ConnectorType::New();reader->SetFileName("test1.jpg");itk::JPEGImageIOFactory::RegisterOneFactory();connector->SetInput(reader->GetOutput());connector->Update();vtkSmartPointer<vtkImageFlip> imageflip = vtkSmartPointer<vtkImageFlip>::New();imageflip->SetInputData(connector->GetOutput());imageflip->SetFilteredAxes(1);//Y轴imageflip->Update();vtkSmartPointer<vtkImageViewer> viewer = vtkSmartPointer<vtkImageViewer>::New();vtkSmartPointer<vtkRenderWindowInteractor> interactor = vtkSmartPointer<vtkRenderWindowInteractor>::New();viewer->SetInputData(imageflip->GetOutput());viewer->SetupInteractor(interactor);viewer->GetRenderWindow()->SetSize(484, 300);//set window sizeviewer->SetColorWindow(255); //set window colorviewer->SetColorLevel(128); //set the level of windowviewer->Render();interactor->Initialize();interactor->Start();return EXIT_SUCCESS;
}