天天看點

《itk實用demo》-ROI提取

ROI提取
#include "itkImage.h"
#include "itkImageFileReader.h"
#include "itkRegionOfInterestImageFilter.h"
#include "itkRGBPixel.h"

#include <iostream>
#include <string>

int main(int argc, char *argv[])
{
  std::string filename = argv[];

  typedef itk::Image<itk::RGBPixel<unsigned char>, > ImageType;
  typedef itk::ImageFileReader<ImageType>             ReaderType;

  ReaderType::Pointer reader = ReaderType::New();
  reader->SetFileName(filename.c_str());
  reader->Update();

  ImageType::SizeType inSize = reader->GetOutput()->GetLargestPossibleRegion().GetSize();

  typedef itk::RegionOfInterestImageFilter< ImageType, ImageType > FilterType;
  FilterType::Pointer filter = FilterType::New();

  ImageType::IndexType start;
  start[] = inSize[]/;
  start[] = inSize[]/;

  ImageType::SizeType size;
  size[] = inSize[]/;
  size[] = inSize[]/;

  if (argc > )
    {
    start.Fill(atoi(argv[]));
    }
  if (argc > )
    {
    size.Fill(atoi(argv[]));
    }


  ImageType::RegionType desiredRegion;
  desiredRegion.SetSize(size);
  desiredRegion.SetIndex(start);

  filter->SetRegionOfInterest(desiredRegion);
  filter->SetInput(reader->GetOutput());


  return EXIT_SUCCESS;
}