[vtkusers] Scalar Array Pointer

Michnay Balázs michnay at freemail.hu
Wed Jan 19 08:05:46 EST 2005


Dear VTK Users,
Presumably my problem is related more to pointer operations than to 
VTK.
I'd like to perform some pixel operations on a vtkImageData. I use the 
following code:

vtkImageData *labeledImage = vtkImageData::New();
labeledImage->CopyStructure(pDoc->MainImageContainer
[m_lastsel].threshImage);

//getting scalar values
vtkDataArray *scalarArrayOriginal = pDoc->threshImage->GetPointData
()->GetScalars();

//Get the number of pixels: 
int NumberOfPixels = scalarArrayOriginal->GetNumberOfTuples();
//x-y dimensions:
int ImageDimensions[3];
pDoc->threshImage->GetDimensions(ImageDimensions);

//I'd like to make another instance the array containing the scalar 
values, but making a pointer that points to the original one is not good, 
because its modifications would affect the original scalar array.

//The following line gets the scalar dara of the newly instantiated 
image.
vtkDataArray *scalarArrayLabeled = labeledImage->GetPointData()-
>GetScalars();

//This line generated a run-time error.
scalarArrayLabeled->SetNumberOfTuples(NumberOfPixels);

How can I make a whole new copy of my original scalar array that can 
be later associated to the new image ?

Thanks for your help in advance,

All the best,

 MB



More information about the vtkusers mailing list