ITK/Examples/Images/ConstantPadImageFilter: Difference between revisions

From KitwarePublic
< ITK‎ | Examples
Jump to navigationJump to search
mNo edit summary
No edit summary
Line 3: Line 3:
<source lang="cpp">
<source lang="cpp">
#include "itkImage.h"
#include "itkImage.h"
#include "itkImageFileWriter.h"
#include "itkRescaleIntensityImageFilter.h"
#include "itkConstantPadImageFilter.h"
#include "itkConstantPadImageFilter.h"
#include "itkImageRegionIterator.h"
#include "itkImageRegionIterator.h"
#include "QuickView.h"


typedef itk::Image<unsigned char, 2>  ImageType;
typedef itk::Image<unsigned char, 2>  ImageType;


static void CreateImage(ImageType::Pointer image);
void CreateImage(ImageType::Pointer image);
void WriteImage(ImageType::Pointer image, std::string filename);


int main(int, char *[])
int main(int, char *[])
Line 16: Line 17:
   ImageType::Pointer image = ImageType::New();
   ImageType::Pointer image = ImageType::New();
   CreateImage(image);
   CreateImage(image);
  WriteImage(image, "input.png");


 
   typedef itk::ConstantPadImageFilter <ImageType, ImageType>
   typedef itk::ConstantPadImageFilter <ImageType, ImageType>
    ConstantPadImageFilterType;
          ConstantPadImageFilterType;


   ImageType::SizeType lowerExtendRegion;
   ImageType::SizeType lowerExtendRegion;
   lowerExtendRegion[0] = 20;
   lowerExtendRegion[0] = 10;
   lowerExtendRegion[1] = 30;
   lowerExtendRegion[1] = 10;


   ImageType::SizeType upperExtendRegion;
   ImageType::SizeType upperExtendRegion;
   upperExtendRegion[0] = 50;
   upperExtendRegion[0] = 50;
   upperExtendRegion[1] = 40;
   upperExtendRegion[1] = 50;


   ImageType::PixelType constantPixel = 100;
   ImageType::PixelType constantPixel = 100;


   ConstantPadImageFilterType::Pointer padFilter
   ConstantPadImageFilterType::Pointer padFilter
    = ConstantPadImageFilterType::New();
          = ConstantPadImageFilterType::New();
   padFilter->SetInput(image);
   padFilter->SetInput(image);
  //padFilter->SetPadBound(outputRegion); // Calls SetPadLowerBound(region) and SetPadUpperBound(region)
   padFilter->SetPadLowerBound(lowerExtendRegion);
   padFilter->SetPadLowerBound(lowerExtendRegion);
   padFilter->SetPadUpperBound(upperExtendRegion);
   padFilter->SetPadUpperBound(upperExtendRegion);
   padFilter->SetConstant(constantPixel);
   padFilter->SetConstant(constantPixel);
  padFilter->Update();


   QuickView viewer;
   WriteImage(padFilter->GetOutput(), "output.png");
  viewer.AddImage<ImageType>(image);
    
  viewer.AddImage<ImageType>(padFilter->GetOutput());
   viewer.Visualize();
 
   return EXIT_SUCCESS;
   return EXIT_SUCCESS;
}
}
Line 48: Line 50:
{
{
   // Create an image
   // Create an image
  ImageType::RegionType region;
   ImageType::IndexType start;
   ImageType::IndexType start;
   start[0] = 0;
   start.Fill(0);
  start[1] = 0;


   ImageType::SizeType size;
   ImageType::SizeType size;
  unsigned int NumRows = 200;
   size.Fill(100);
  unsigned int NumCols = 300;
   size[0] = NumRows;
  size[1] = NumCols;


   region.SetSize(size);
   ImageType::RegionType region(start, size);
  region.SetIndex(start);


   image->SetRegions(region);
   image->SetRegions(region);
   image->Allocate();
   image->Allocate();
  image->FillBuffer(0);


  // Make the whole image white
}
  itk::ImageRegionIterator<ImageType> iterator(image,image->GetLargestPossibleRegion());


  while(!iterator.IsAtEnd())
void WriteImage(ImageType::Pointer image, std::string filename)
    {
{
    iterator.Set(255);
  typedef  itk::ImageFileWriter< ImageType  > WriterType;
    ++iterator;
  WriterType::Pointer writer = WriterType::New();
    }
  writer->SetFileName(filename);
  writer->SetInput(image);
  writer->Update();
}
}
</source>
</source>

Revision as of 17:09, 27 February 2011

ITK Examples Baseline Images TestConstantPadImageFilter.png

ConstantPadImageFilter.cxx

<source lang="cpp">

  1. include "itkImage.h"
  2. include "itkImageFileWriter.h"
  3. include "itkRescaleIntensityImageFilter.h"
  4. include "itkConstantPadImageFilter.h"
  5. include "itkImageRegionIterator.h"

typedef itk::Image<unsigned char, 2> ImageType;

void CreateImage(ImageType::Pointer image); void WriteImage(ImageType::Pointer image, std::string filename);

int main(int, char *[]) {

 ImageType::Pointer image = ImageType::New();
 CreateImage(image);
 WriteImage(image, "input.png");


 typedef itk::ConstantPadImageFilter <ImageType, ImageType>
         ConstantPadImageFilterType;
 ImageType::SizeType lowerExtendRegion;
 lowerExtendRegion[0] = 10;
 lowerExtendRegion[1] = 10;
 ImageType::SizeType upperExtendRegion;
 upperExtendRegion[0] = 50;
 upperExtendRegion[1] = 50;
 ImageType::PixelType constantPixel = 100;
 ConstantPadImageFilterType::Pointer padFilter
         = ConstantPadImageFilterType::New();
 padFilter->SetInput(image);
 //padFilter->SetPadBound(outputRegion); // Calls SetPadLowerBound(region) and SetPadUpperBound(region)
 padFilter->SetPadLowerBound(lowerExtendRegion);
 padFilter->SetPadUpperBound(upperExtendRegion);
 padFilter->SetConstant(constantPixel);
 padFilter->Update();
 WriteImage(padFilter->GetOutput(), "output.png");
 
 return EXIT_SUCCESS;

}

void CreateImage(ImageType::Pointer image) {

 // Create an image
 ImageType::IndexType start;
 start.Fill(0);
 ImageType::SizeType size;
 size.Fill(100);
 ImageType::RegionType region(start, size);
 image->SetRegions(region);
 image->Allocate();
 image->FillBuffer(0);

}

void WriteImage(ImageType::Pointer image, std::string filename) {

 typedef  itk::ImageFileWriter< ImageType  > WriterType;
 WriterType::Pointer writer = WriterType::New();
 writer->SetFileName(filename);
 writer->SetInput(image);
 writer->Update();

} </source>

CMakeLists.txt

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

PROJECT(ConstantPadImageFilter)

include_directories(/home/doriad/src/ITK/Wrapping/WrapITK/ExternalProjects/ItkVtkGlue/src/)

FIND_PACKAGE(VTK REQUIRED) INCLUDE(${VTK_USE_FILE})

FIND_PACKAGE(ITK REQUIRED) INCLUDE(${ITK_USE_FILE})

ADD_EXECUTABLE(ConstantPadImageFilter ConstantPadImageFilter.cxx) TARGET_LINK_LIBRARIES(ConstantPadImageFilter vtkHybrid ITKBasicFilters ITKCommon ITKIO)

</source>