ITK/Examples/ImageProcessing/AddConstantToImageFilter
From KitwarePublic
Note: You will need an ITK version as of 5/17/2011 for this functionality.
AddConstantToImageFilter.cxx
#include "itkImage.h" #include "itkAddImageFilter.h" #include "itkImageFileWriter.h" typedef itk::Image<unsigned char, 2> ImageType; static void CreateImage(ImageType::Pointer image); int main(int, char *[]) { ImageType::Pointer image = ImageType::New(); CreateImage(image); typedef itk::AddImageFilter <ImageType, ImageType, ImageType> AddImageFilterType; AddImageFilterType::Pointer addImageFilter = AddImageFilterType::New(); addImageFilter->SetInput(image); addImageFilter->SetConstant2(2); addImageFilter->Update(); typedef itk::ImageFileWriter< ImageType > WriterType; WriterType::Pointer writer = WriterType::New(); writer->SetFileName("output.png"); writer->SetInput(addImageFilter->GetOutput()); writer->Update(); return EXIT_SUCCESS; } void CreateImage(ImageType::Pointer image) { ImageType::IndexType start; start.Fill(0); ImageType::SizeType size; size.Fill(100); ImageType::RegionType region; region.SetSize(size); region.SetIndex(start); image->SetRegions(region); image->Allocate(); itk::ImageRegionIterator<ImageType> imageIterator(image,region); while(!imageIterator.IsAtEnd()) { if(imageIterator.GetIndex()[0] < 70) { imageIterator.Set(255); } else { imageIterator.Set(0); } ++imageIterator; } }
CMakeLists.txt
cmake_minimum_required(VERSION 2.8) project(AddImageFilter) find_package(ITK REQUIRED) include(${ITK_USE_FILE}) add_executable(AddImageFilter AddImageFilter.cxx) if( "${ITK_VERSION_MAJOR}" LESS 4 ) target_link_libraries(AddImageFilter ITKReview ${ITK_LIBRARIES}) else( "${ITK_VERSION_MAJOR}" LESS 4 ) target_link_libraries(AddImageFilter ${ITK_LIBRARIES}) endif( "${ITK_VERSION_MAJOR}" LESS 4 )