ITK/Examples/Images/ConstantPadImageFilter: Difference between revisions
mNo edit summary |
Daviddoria (talk | contribs) 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" | ||
typedef itk::Image<unsigned char, 2> ImageType; | typedef itk::Image<unsigned char, 2> ImageType; | ||
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; | |||
ImageType::SizeType lowerExtendRegion; | ImageType::SizeType lowerExtendRegion; | ||
lowerExtendRegion[0] = | lowerExtendRegion[0] = 10; | ||
lowerExtendRegion[1] = | lowerExtendRegion[1] = 10; | ||
ImageType::SizeType upperExtendRegion; | ImageType::SizeType upperExtendRegion; | ||
upperExtendRegion[0] = 50; | upperExtendRegion[0] = 50; | ||
upperExtendRegion[1] = | upperExtendRegion[1] = 50; | ||
ImageType::PixelType constantPixel = 100; | ImageType::PixelType constantPixel = 100; | ||
ConstantPadImageFilterType::Pointer padFilter | ConstantPadImageFilterType::Pointer padFilter | ||
= 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(); | |||
WriteImage(padFilter->GetOutput(), "output.png"); | |||
return EXIT_SUCCESS; | return EXIT_SUCCESS; | ||
} | } | ||
Line 48: | Line 50: | ||
{ | { | ||
// Create an image | // Create an image | ||
ImageType::IndexType start; | ImageType::IndexType start; | ||
start | start.Fill(0); | ||
ImageType::SizeType size; | ImageType::SizeType size; | ||
size.Fill(100); | |||
size | |||
region | ImageType::RegionType region(start, size); | ||
image->SetRegions(region); | image->SetRegions(region); | ||
image->Allocate(); | 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> | </source> |
Revision as of 17:09, 27 February 2011
ConstantPadImageFilter.cxx
<source lang="cpp">
- include "itkImage.h"
- include "itkImageFileWriter.h"
- include "itkRescaleIntensityImageFilter.h"
- include "itkConstantPadImageFilter.h"
- 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>