[vtkusers] Another vtkMarchingCubes question
Luca Pamparana
luca.pamparana at gmail.com
Tue Aug 7 08:50:36 EDT 2007
Hello everyone,
I have a question about vtkDiscreteMarchingCubes object.
What I am doing is as follows:
- Load an input 3D volume (a binary mask).
- Apply the vtkDiscreteMarchingCubes filter.
- Cut through the resulting dataset using a vtkCutter.
- Use a vtkStripper to generate closed loop polygons
- Visualize these polygons.
The problem is that the tip of my input dataset is missing. The structures
at the tip are quite small and I am guessing that not enough triangles are
being generated and it is clipping my dataset somehow. I was wondering if
someone has had the same problem and would know how to avoid this.
My code looks more or less as follows:
void ExtractBinaryMask(vtkImageData * in)
{
if (in)
{
// Pass this to the marching cube filter
discreteMarchingCubes->ComputeNormalsOff();
discreteMarchingCubes>ComputeGradientsOff();
discreteMarchingCubes->SetInput(in);
// Get the scalar range
double * range = in->GetScalarRange();
// We set the contour surface value to the greatest value
discreteMarchingCubes->SetValue(0, range[1]);
vtkPlane * plane = vtkPlane::New();
vtkCutter * cutter = vtkCutter::New();
vtkStripper * stripper = vtkStripper::New();
plane->SetOrigin(in->GetOrigin());
plane->SetNormal(0, 0, 1);
cutter->SetInput(discreteMarchingCubes->GetOutput());
cutter->SetCutFunction(plane);
cutter->Update();
stripper->SetInput(cutter->GetOutput());
stripper->Update();
// poly is vtkPolyData
poly->SetPoints(stripper->GetOutput()->GetPoints());
poly->SetPolys(stripper->GetOutput()->GetLines());
// we have the points now
}
}
I shift the plane along the length of the whole volume and do this
extraction for the whole set. However, the top tip does not return any
polygons :(
Any help would be greatly appreciated!
Thanks,
Luca
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20070807/52ea652a/attachment.htm>
More information about the vtkusers
mailing list