ITK/Examples/Morphology/BinaryMorphologicalClosingImageFilter

From KitwarePublic
Jump to navigationJump to search

BinaryMorphologicalOpeningImageFilter.cxx

<source lang="cpp">

  1. include "itkImage.h"
  2. include "itkBinaryMorphologicalClosingImageFilter.h"
  3. include "itkImageFileReader.h"
  4. include "itkBinaryBallStructuringElement.h"
  5. include "itkImageFileWriter.h"

int main(int argc, char *argv[]) {

 if(argc < 3)
   {
   std::cerr << "Usage: " << std::endl;
   std::cerr << argv[0] << " InputImageFile OutputImageFile [radius]" << std::endl;
   return EXIT_FAILURE;
   }
 unsigned int radius = 2;
 if (argc > 3)
   {
   radius = atoi(argv[3]);
   }
 const unsigned Dimension = 3;
 typedef unsigned char                       PixelType;
 typedef itk::Image< PixelType, Dimension >  ImageType;
 typedef itk::ImageFileReader<ImageType>     ReaderType;
 ReaderType::Pointer reader = ReaderType::New();
 reader->SetFileName(argv[1]);
 reader->Update();
 typedef itk::BinaryBallStructuringElement< PixelType, Dimension > StructuringElementType;
 StructuringElementType structuringElement;
 structuringElement.SetRadius(radius);
 structuringElement.CreateStructuringElement();
 typedef itk::BinaryMorphologicalClosingImageFilter <ImageType, ImageType, StructuringElementType>
         BinaryMorphologicalClosingImageFilterType;
 BinaryMorphologicalClosingImageFilterType::Pointer dilateFilter
         = BinaryMorphologicalClosingImageFilterType::New();
 dilateFilter->SetInput(reader->GetOutput());
 dilateFilter->SetKernel(structuringElement);
 typedef itk::ImageFileWriter< ImageType > WriterType;
 WriterType::Pointer writer = WriterType::New();
 writer->SetInput( dilateFilter->GetOutput() );
 writer->SetFileName( argv[2] );
 writer->Update();
 return EXIT_SUCCESS;

}

</source>

CMakeLists.txt

<syntaxhighlight lang="cmake"> cmake_minimum_required(VERSION 2.6)

project(BinaryMorphologicalClosingImageFilter)

find_package(ITK REQUIRED) include(${ITK_USE_FILE})

add_executable(BinaryMorphologicalClosingImageFilter BinaryMorphologicalClosingImageFilter.cxx) target_link_libraries(BinaryMorphologicalClosingImageFilter ${ITK_LIBRARIES})

</syntaxhighlight>