ITK/Examples/SimpleOperations/SetPixels: Difference between revisions

From KitwarePublic
< ITK‎ | Examples
Jump to navigationJump to search
mNo edit summary
No edit summary
Line 1: Line 1:
<div class="floatcenter">[[File:ITK_Examples_Baseline_SimpleOperations_TestSetPixels.png]]</div>
This example demonstrates how to set the value of individual pixels in an image.
This example demonstrates how to set the value of individual pixels in an image.



Revision as of 13:35, 25 December 2010

ITK Examples Baseline SimpleOperations TestSetPixels.png

This example demonstrates how to set the value of individual pixels in an image.

SetPixels.cxx

<source lang="cpp">

  1. include "itkImage.h"
  1. include <itkImageToVTKImageFilter.h>
  1. include "vtkImageViewer.h"
  2. include "vtkRenderWindowInteractor.h"
  3. include "vtkSmartPointer.h"
  4. include "vtkImageActor.h"
  5. include "vtkInteractorStyleImage.h"
  6. include "vtkRenderer.h"

int main(int, char *[]) {

 typedef itk::Image< unsigned char, 2 >  ImageType;
 ImageType::RegionType region;
 ImageType::IndexType start;
 start[0] = 0;
 start[1] = 0;
 ImageType::SizeType size;
 size[0] = 200;
 size[1] = 300;
 region.SetSize(size);
 region.SetIndex(start);
 ImageType::Pointer image = ImageType::New();
 image->SetRegions(region);
 image->Allocate();
 // Set pixels in a square to one value
 for(unsigned int r = 20; r < 80; r++)
 {
     for(unsigned int c = 30; c < 100; c++)
     {
         ImageType::IndexType pixelIndex;
         pixelIndex[0] = r;
         pixelIndex[1] = c;
         image->SetPixel(pixelIndex, 255);
     }
 }
 // Set pixels in a different square to a different value
 for(unsigned int r = 100; r < 130; r++)
 {
     for(unsigned int c = 115; c < 160; c++)
     {
         ImageType::IndexType pixelIndex;
         pixelIndex[0] = r;
         pixelIndex[1] = c;
         image->SetPixel(pixelIndex, 125);
     }
 }
 typedef itk::ImageToVTKImageFilter<ImageType> ConnectorType;
 ConnectorType::Pointer connector = ConnectorType::New();
 connector->SetInput(image);
 
 vtkSmartPointer<vtkImageActor> actor =
   vtkSmartPointer<vtkImageActor>::New();
 actor->SetInput(connector->GetOutput());
 // Visualize
 vtkSmartPointer<vtkRenderWindow> renderWindow =
   vtkSmartPointer<vtkRenderWindow>::New();
 vtkSmartPointer<vtkRenderWindowInteractor> interactor =
   vtkSmartPointer<vtkRenderWindowInteractor>::New();
 interactor->SetRenderWindow(renderWindow);
 vtkSmartPointer<vtkRenderer> renderer =
   vtkSmartPointer<vtkRenderer>::New();
 renderWindow->AddRenderer(renderer);
 renderer->AddActor(actor);
 renderer->ResetCamera();
 renderWindow->Render();
 vtkSmartPointer<vtkInteractorStyleImage> style =
   vtkSmartPointer<vtkInteractorStyleImage>::New();
 interactor->SetInteractorStyle(style);
 interactor->Start();
 return EXIT_SUCCESS;

} </source>

CMakeLists.txt

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

PROJECT(SetPixels)

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(SetPixels SetPixels.cxx) TARGET_LINK_LIBRARIES(SetPixels vtkHybrid ITKIO ITKBasicFilters ITKCommon )

</source>