ITK/Examples/ImageProcessing/AddPixelAccessor: Difference between revisions

From KitwarePublic
< ITK‎ | Examples
Jump to navigationJump to search
mNo edit summary
Line 5: Line 5:
#include "itkImage.h"
#include "itkImage.h"
#include "itkAddPixelAccessor.h"
#include "itkAddPixelAccessor.h"
#include "itkImageAdaptor.h"
#include "itkImageRegionIterator.h"
#include "itkImageRegionIterator.h"
 
typedef itk::Image<unsigned char, 2>  ImageType;
typedef itk::Image<unsigned int, 2>  ImageType;
 
void CreateImage(ImageType::Pointer image);
static void CreateImage(ImageType::Pointer image);
 
int main(int, char *[])
int main(int, char *[])
{
{
   ImageType::Pointer image = ImageType::New();
   ImageType::Pointer image = ImageType::New();
   CreateImage(image);
   CreateImage(image);
 
   typedef itk::Accessor::AddPixelAccessor <ImageType::PixelType>
   typedef itk::Accessor::AddPixelAccessor <ImageType::PixelType>
          AddPixelAccessorType;
    AddPixelAccessorType;
  typedef itk::ImageAdaptor<  ImageType, AddPixelAccessorType >
    ImageAdaptorType;


  ImageAdaptorType::Pointer adaptor = ImageAdaptorType::New();
   AddPixelAccessorType addPixelAccessor;
   AddPixelAccessorType addPixelAccessor;
  adaptor->SetImage(image);
  ImageType::IndexType index;
  index[0] = 0;
  index[1] = 0;
   addPixelAccessor.SetValue(5);
   addPixelAccessor.SetValue(5);
  adaptor->SetPixelAccessor(addPixelAccessor);
  std::cout << "addPixelAccessor.SetValue(5)" << std::endl;
  std::cout << "\timage->GetPixel" << index << ": " << image->GetPixel(index)
            << " adaptor->GetPixel" << index << ": " << adaptor->GetPixel(index)
            << std::endl;
  addPixelAccessor.SetValue(100);
  adaptor->SetPixelAccessor(addPixelAccessor);
  std::cout << "addPixelAccessor.SetValue(100)" << std::endl;
  std::cout << "\timage->GetPixel" << index << ": " << image->GetPixel(index)
            << " adaptor->GetPixel" << index << ": " << adaptor->GetPixel(index)
            << std::endl;


   return EXIT_SUCCESS;
   return EXIT_SUCCESS;
}
}
 
void CreateImage(ImageType::Pointer image)
void CreateImage(ImageType::Pointer image)
{
{
   ImageType::IndexType start;
   ImageType::IndexType start;
   start.Fill(0);
   start.Fill(0);
 
   ImageType::SizeType size;
   ImageType::SizeType size;
   size.Fill(10);
   size.Fill(10);
 
   ImageType::RegionType region;
   ImageType::RegionType region;
   region.SetSize(size);
   region.SetSize(size);
   region.SetIndex(start);
   region.SetIndex(start);
 
   image->SetRegions(region);
   image->SetRegions(region);
   image->Allocate();
   image->Allocate();
 
   itk::ImageRegionIterator<ImageType> imageIterator(image,image->GetLargestPossibleRegion());
   itk::ImageRegionIterator<ImageType> imageIterator(image,image->GetLargestPossibleRegion());
 
   while(!imageIterator.IsAtEnd())
   while(!imageIterator.IsAtEnd())
     {
     {
Line 47: Line 71:
     ++imageIterator;
     ++imageIterator;
     }
     }
 
}
}
</source>
</source>



Revision as of 05:13, 10 December 2010

This example current does not work - what is the correct usage?

AddPixelAccessor.cxx

<source lang="cpp">

  1. include "itkImage.h"
  2. include "itkAddPixelAccessor.h"
  3. include "itkImageAdaptor.h"
  4. include "itkImageRegionIterator.h"

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

static void CreateImage(ImageType::Pointer image);

int main(int, char *[]) {

 ImageType::Pointer image = ImageType::New();
 CreateImage(image);

 typedef itk::Accessor::AddPixelAccessor <ImageType::PixelType>
   AddPixelAccessorType;
 typedef itk::ImageAdaptor<  ImageType, AddPixelAccessorType >
   ImageAdaptorType;
 ImageAdaptorType::Pointer adaptor = ImageAdaptorType::New();
 AddPixelAccessorType addPixelAccessor;


 adaptor->SetImage(image);

 ImageType::IndexType index;
 index[0] = 0;
 index[1] = 0;
 addPixelAccessor.SetValue(5);
 adaptor->SetPixelAccessor(addPixelAccessor);
 std::cout << "addPixelAccessor.SetValue(5)" << std::endl;
 std::cout << "\timage->GetPixel" << index << ": " << image->GetPixel(index)
           << " adaptor->GetPixel" << index << ": " << adaptor->GetPixel(index)
           << std::endl;
 addPixelAccessor.SetValue(100);
 adaptor->SetPixelAccessor(addPixelAccessor);
 std::cout << "addPixelAccessor.SetValue(100)" << std::endl;
 std::cout << "\timage->GetPixel" << index << ": " << image->GetPixel(index)
           << " adaptor->GetPixel" << index << ": " << adaptor->GetPixel(index)
           << std::endl;
 return EXIT_SUCCESS;

}

void CreateImage(ImageType::Pointer image) {

 ImageType::IndexType start;
 start.Fill(0);

 ImageType::SizeType size;
 size.Fill(10);

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

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

 itk::ImageRegionIterator<ImageType> imageIterator(image,image->GetLargestPossibleRegion());

 while(!imageIterator.IsAtEnd())
   {
   imageIterator.Set(20);
   ++imageIterator;
   }

} </source>

CMakeLists.txt

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

PROJECT(AddPixelAccessor)

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

ADD_EXECUTABLE(AddPixelAccessor AddPixelAccessor.cxx) TARGET_LINK_LIBRARIES(AddPixelAccessor ITKBasicFilters ITKCommon ITKIO) </source>