[vtkusers] Passing in vtkImageData to vtkMarchingCubes
ThinkFlow
neto at caltech.edu
Tue Aug 27 19:24:07 EDT 2013
Hi,
I have some vtkrectilineargrid data, and I converted it into vtkImageData.
Then, I tried to pass this vtkImageData through vtkMarchingCubes. However,
the number of points in the output of vtkMarchingCubes is 0, while prior,
the number of points in vtkImageData is not zero. i was wondering if there
was something I might have forgotten to do in getting all the parameters of
vtkImageData. Here is some of my code:
If you would like, I can attach my full code.
grid is of type vtkRectilinearGrid.
vtkImageData *vid = vtkImageData::New();
vid->SetExtent(grid->GetExtent());
vid->GetPointData()->ShallowCopy(grid->GetPointData());
vid->GetCellData()->ShallowCopy(grid->GetCellData());
/* compute bounds */
double bounds[6];
vid->GetBounds(bounds);
/* desired volume spacing */
double spacing[3];
spacing[0] = 0.1;
spacing[1] = 0.1;
spacing[2] = 0.1;
vid->SetSpacing(spacing);
/* compute dimensions */
int dim[3];
for (int i = 0; i < 3; i++)
{
dim[i] = static_cast<int>(ceil((bounds[i * 2 + 1] - bounds[i * 2]) /
spacing[i]));
}
vid->SetDimensions(dim);
/* compute the origin */
double origin[3];
for (int t = 0; t < 3; t++)
{
if (bounds[2*t] < 0)
origin[t] = bounds[2*t] - spacing[t]/10;
else
origin[t] = bounds[2*t] + spacing[t]/10;
}
vid->SetOrigin(origin);
#if VTK_MAJOR_VERSION <= 5
vid->SetScalarTypeToUnsignedChar();
vid->AllocateScalars();
#else
vid->AllocateScalars(VTK_UNSIGNED_CHAR,1);
#endif
// fill the image with foreground voxels:
unsigned char inval = 255;
unsigned char outval = 0;
vtkIdType count = vid->GetNumberOfPoints();
for (vtkIdType s = 0; s < count; ++s)
{
vid->GetPointData()->GetScalars()->SetTuple1(s, inval);
}
//Prepare surface generation
vtkMarchingCubes *contour = vtkMarchingCubes::New(); //for label images
contour->SetInput(vid);
Thanks
--
View this message in context: http://vtk.1045678.n5.nabble.com/Passing-in-vtkImageData-to-vtkMarchingCubes-tp5723066.html
Sent from the VTK - Users mailing list archive at Nabble.com.
More information about the vtkusers
mailing list