ITK/Examples/ImageProcessing/AddPixelAccessor: Difference between revisions
From KitwarePublic
Jump to navigationJump to search
Daviddoria (talk | contribs) 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 | 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; | |||
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">
- include "itkImage.h"
- include "itkAddPixelAccessor.h"
- include "itkImageAdaptor.h"
- 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>