[vtkusers] vtkImageGradient with vtkStreamline

Basak Alper basakalper at gmail.com
Fri Feb 8 11:34:53 EST 2008


Hi all,
I am trying to pass output of an image gradient to a streamline object.

 vtkImageData *vol2 = vtkImageData::New();
 vol2->SetDimensions(91, 81, 85);
 vol2->SetOrigin(45, 40, 42);
 vol2->SetSpacing(1, 1, 1);
vol2->SetScalarTypeToFloat();
vol2->GetPointData()->SetScalars(scalars); //scalars is vtkFloatArray of
single components

vtkImageGradient* grad = vtkImageGradient::New();
grad->SetDimensionality( 3 );
grad->SetInput(vol2);
grad->Update();

//I tried below code sent its output to the streamline, but I got no vector
defined error from vtkStreamline.
vtkAssignAttribute* aa = vtkAssignAttribute::New();
aa->SetInputConnection(grad->GetOutputPort());
aa->Assign(vtkDataSetAttributes::SCALARS, vtkDataSetAttributes::VECTORS,
vtkAssignAttribute::POINT_DATA);

What I am trying to do a
1. create a data structure taht holds both scalar and vector information and
pass it to the imageGradient.
I tried to set vector field of an image data set manually like this.

vtkDataArray * array = grad->GetOutput()->GetPointData()->GetScalars();
vtkImageData *gradVecs = vtkImageData::New();

    gradVecs->GetPointData()->SetVectors(array);
    gradVecs->SetScalarTypeToDouble();

Then I get the "Requesting a cell from an empty image" error. Tried to
assign original image scalars
to the to this gradVecs image but it's not working.

Anybody knows how to set up a right input file for streamline?
Thanks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20080208/8f60d627/attachment.htm>


More information about the vtkusers mailing list