[Insight-users] GetPixel problem
C. Aaron Cois
cacst11+@pitt.edu
Thu May 20 18:59:45 EDT 2004
Looks to me like you didn't call Update() on the reader to actually read
in the image. Add the line
reader->Update();
right after
image = reader->GetOutput();
and you should be fine.
-Aaron
Robert Maroon wrote:
>Hi all,
>
>I am currently writing an application where I input a
>100x100x100 3D volume and I am simply trying to get
>the value at one pixel and do a cout to see the value.
>
>
>However, as soon as I call GetPixel, I get a
>segmentation fault. The pixel coordinates I pass are
>definitely within the bounds of the volume so I can't
>see what the problem is.
>
>I've included the code below (it is a modification of
>the image3.cxx example from Examples/Data
>Representation/Image), with the problematic line of
>code commented.
>
>Thanks!
>
>
>#include "itkImage.h"
>#include "itkImageFileReader.h"
>#include <iostream>
>using namespace std;
>
>int main(int , char ** argv)
>{
> int i, j, k;
> typedef unsigned char PixelType;
> const unsigned int Dimension = 3;
>
> // First the image type should be declared
> typedef itk::Image< PixelType, Dimension >
>ImageType;
>
> // Then the image object can be created
> ImageType::Pointer image = ImageType::New();
>
> // Define typedefs for the readers and writers
> typedef itk::ImageFileReader< ImageType >
>ReaderType;
>
> // Initialize pointers for the readers and writers
> ReaderType::Pointer reader = ReaderType::New();
>
> reader->SetFileName( argv[0] );
>
> // The image region should be initialized
> ImageType::IndexType start;
> ImageType::SizeType size;
>
> size[0] = 100; // size along X
> size[1] = 100; // size along Y
> size[2] = 100; // size along Z
>
> start[0] = 0; // first index on X
> start[1] = 0; // first index on Y
> start[2] = 0; // first index on Z
>
> ImageType::RegionType region;
> region.SetSize( size );
> region.SetIndex( start );
>
> // Pixel data is allocated
> image->SetRegions( region );
> image->Allocate();
> image = reader->GetOutput();
>
> ImageType::IndexType pixelIndex;
> pixelIndex[0] = 50;
> pixelIndex[1] = 50;
> pixelIndex[2] = 9;
>
> /* CRASHES ON THIS LINE WITH A SEGMENTATION FAULT */
> ImageType::PixelType pixelValue =
> image->GetPixel( pixelIndex );
> cout<<"Pixel Value is:"<<pixelValue<<"\n";
>
> return 0;
>
>}
>
>
>
>
>__________________________________
>Do you Yahoo!?
>Yahoo! Domains Claim yours for only $14.70/year
>http://smallbusiness.promotions.yahoo.com/offer
>_______________________________________________
>Insight-users mailing list
>Insight-users@itk.org
>http://www.itk.org/mailman/listinfo/insight-users
>
>
More information about the Insight-users
mailing list