ITK/Examples/ImageProcessing/NthElementImageAdaptor: Difference between revisions

From KitwarePublic
< ITK‎ | Examples
Jump to navigationJump to search
(Created page with "==NthElementImageAdaptor.cxx== <source lang="cpp"> #include "itkImageAdaptor.h" #include "itkImageRegionIterator.h" #include "itkNthElementImageAdaptor.h" typedef itk::Image<itk...")
 
(CreateImage must be static to avoid duplicate symbols in test driver.)
Line 7: Line 7:
typedef itk::Image<itk::CovariantVector< float, 3>, 2> VectorImageType;
typedef itk::Image<itk::CovariantVector< float, 3>, 2> VectorImageType;


void CreateImage(VectorImageType::Pointer image);
static void CreateImage(VectorImageType::Pointer image);


int main(int, char *[])
int main(int, char *[])
Line 20: Line 20:


   typedef itk::NthElementImageAdaptor<VectorImageType,
   typedef itk::NthElementImageAdaptor<VectorImageType,
                              float> ImageAdaptorType;
    float> ImageAdaptorType;


   ImageAdaptorType::Pointer adaptor = ImageAdaptorType::New();
   ImageAdaptorType::Pointer adaptor = ImageAdaptorType::New();

Revision as of 15:23, 10 December 2010

NthElementImageAdaptor.cxx

<source lang="cpp">

  1. include "itkImageAdaptor.h"
  2. include "itkImageRegionIterator.h"
  3. include "itkNthElementImageAdaptor.h"

typedef itk::Image<itk::CovariantVector< float, 3>, 2> VectorImageType;

static void CreateImage(VectorImageType::Pointer image);

int main(int, char *[]) {

 VectorImageType::Pointer image = VectorImageType::New();
 CreateImage(image);
 itk::Index<2> index;
 index.Fill(0);
 std::cout << image->GetPixel(index) << std::endl;
 typedef itk::NthElementImageAdaptor<VectorImageType,
   float> ImageAdaptorType;
 ImageAdaptorType::Pointer adaptor = ImageAdaptorType::New();
 adaptor->SelectNthElement(0);
 adaptor->SetImage(image);
 std::cout << adaptor->GetPixel(index) << std::endl;
 return EXIT_SUCCESS;

}

void CreateImage(VectorImageType::Pointer image) {

 VectorImageType::IndexType start;
 start.Fill(0);
 VectorImageType::SizeType size;
 size.Fill(2);
 VectorImageType::RegionType region;
 region.SetSize(size);
 region.SetIndex(start);
 image->SetRegions(region);
 image->Allocate();
 itk::ImageRegionIterator<VectorImageType> imageIterator(image,image->GetLargestPossibleRegion());
 itk::CovariantVector<float, 3> vec;
 vec[0] = 1;
 vec[1] = 2;
 vec[2] = 3;
 while(!imageIterator.IsAtEnd())
   {
   imageIterator.Set(vec);
   ++imageIterator;
   }

} </source>

CMakeLists.txt

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

PROJECT(NthElementImageAdaptor)

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

ADD_EXECUTABLE(NthElementImageAdaptor NthElementImageAdaptor.cxx) TARGET_LINK_LIBRARIES(NthElementImageAdaptor ITKIO)

</source>