int main(int argc, char*argv[]) { if(argc != 4) { std::cerr << "Required arguments: image mask output" << std::endl; return EXIT_FAILURE; } std::string imageFilename = argv[1]; std::string maskFilename = argv[2]; std::string outputFilename = argv[3]; std::cout << "Reading image: " << imageFilename << std::endl; std::cout << "Reading mask: " << maskFilename << std::endl; std::cout << "Output: " << outputFilename << std::endl; //typedef itk::Image<float, 2> ImageType; //typedef itk::Image<itk::CovariantVector<unsigned char, 3>, 2> ImageType; // ImageType::PixelType color; // color[0] = 0; // color[1] = 255; // color[2] = 0; typedef itk::VectorImage<float, 2> ImageType; // ImageType::PixelType color; // color.SetRed(0); // color.SetGreen(255); // color.SetBlue(0); typedef itk::ImageFileReader<ImageType> ImageReaderType; ImageReaderType::Pointer imageReader = ImageReaderType::New(); imageReader->SetFileName(imageFilename.c_str()); imageReader->Update(); ImageType::PixelType value(imageReader->GetOutput()->GetNumberOfComponentsPerPixel()); value.Fill(0); Mask::Pointer mask = Mask::New(); mask->Read(maskFilename.c_str()); mask->ApplyToImage(imageReader->GetOutput(), value); OutputHelpers::WriteImage(imageReader->GetOutput(), outputFilename); return EXIT_SUCCESS; }
//BasicViewerWidget<TImage>::BasicViewerWidget(TImage* const image, Mask* const mask) : BasicViewerWidget<TImage>::BasicViewerWidget(typename TImage::Pointer image, Mask::Pointer mask) : Image(image), MaskImage(mask) { qRegisterMetaType<itk::ImageRegion<2> >("itkImageRegion"); this->setupUi(this); int dims[3]; this->ImageLayer.ImageData->GetDimensions(dims); typename TImage::Pointer tempImage = TImage::New(); ITKHelpers::DeepCopy(image.GetPointer(), tempImage.GetPointer()); typename TImage::PixelType zeroPixel(tempImage->GetNumberOfComponentsPerPixel()); zeroPixel = itk::NumericTraits<typename TImage::PixelType>::ZeroValue(zeroPixel); mask->ApplyToImage(tempImage.GetPointer(), zeroPixel); ITKVTKHelpers::ITKVectorImageToVTKImageFromDimension(tempImage.GetPointer(), this->ImageLayer.ImageData); // if(chkScaleImage->isChecked()) // { // VTKHelpers::ScaleImage(this->ImageLayer.ImageData); // } this->ImageDimension[0] = dims[0]; this->ImageDimension[1] = dims[1]; this->ImageDimension[2] = dims[2]; SetupScenes(); // this->InteractorStyle = vtkSmartPointer<InteractorStyleImageWithDrag>::New(); this->InteractorStyle = vtkSmartPointer<vtkInteractorStyleImage>::New(); this->Renderer = vtkSmartPointer<vtkRenderer>::New(); this->qvtkWidget->GetRenderWindow()->AddRenderer(this->Renderer); this->Renderer->AddViewProp(ImageLayer.ImageSlice); this->InteractorStyle->SetCurrentRenderer(this->Renderer); this->qvtkWidget->GetRenderWindow()->GetInteractor()->SetInteractorStyle(this->InteractorStyle); // this->InteractorStyle->Init(); // this->Camera = new ImageCamera(this->Renderer); this->ItkVtkCamera = new ITKVTKCamera(this->InteractorStyle, this->Renderer, this->qvtkWidget->GetRenderWindow()); this->ItkVtkCamera->SetCameraPositionPNG(); }