[vtkusers] Problem with vtkPolyDataToImageStencil in 5.8
Jothybasu Selvaraj
jothybasu at gmail.com
Fri Mar 9 15:29:50 EST 2012
Hi David,
I am still not able to fix this issue.
This is how I create the polydata and other pipeline.
vtkSmartPointer<vtkPoints> points =
vtkSmartPointer<vtkPoints>::New();
vtkSmartPointer<vtkCellArray> cells =
vtkSmartPointer<vtkCellArray>::New();
points->SetNumberOfPoints(npts+1);
cells->InsertNextCell(npts+1);
for(int p=0;p<npts;p++)
{
points->SetPoint( p, Xp, Yp,Zp );
cells->InsertCellPoint( p );
}
cells->InsertCellPoint(npts);
points->SetPoint(npts,pts[0],pts[1],pts[2]);//close contour
vtkSmartPointer<vtkPolyData>polydataContour=
vtkSmartPointer<vtkPolyData>::New();
polydataContour->Initialize();
polydataContour->SetLines(cells);
polydataContour->SetPoints(points);
//Here all contours are appended to vtkAppendPolydataFilter
vtkSmartPointer<vtkPolyDataToImageStencil> sts=
vtkSmartPointer<vtkPolyDataToImageStencil>::New();
sts->SetTolerance(1e-6);//very important
sts->SetInformationInput(binary_image);
vtkSmartPointer<vtkLinearExtrusionFilter> extrude=
vtkSmartPointer<vtkLinearExtrusionFilter>::New();
extrude->SetInput(appender->GetOutput());
extrude->CappingOff();//also tried ON
extrude->SetVector(0, 0,-zSpacing);//Correct Z spacing is important
//qDebug()<<-zSpacing<<"-ve zSpacing";
sts->SetInput(extrude->GetOutput());
//qDebug()<<t->currentTime()<<"Stencil start";
vtkSmartPointer<vtkImageStencil> stencil=
vtkSmartPointer<vtkImageStencil>::New();
stencil->SetStencil(sts->GetOutput());
stencil->SetInput(binary_image);
stencil->ReverseStencilOn(); stencil->Update();
I am able to visualize the contour by setting appendFilter->GetOutput() to
a vtkPolyDataMapper.
Is there any thing wrong.
Thanks very much!
Jothy
On Tue, Mar 6, 2012 at 3:48 PM, David Gobbi <david.gobbi at gmail.com> wrote:
> You'd have to use SetLines() instead of SetPolys(). And for
> polylines, the final point in the polyline has to connect to the first
> line to create a closed loop, so polylines cell arrays need an extra
> entry as compared to polygon cell arrays.
>
> On Tue, Mar 6, 2012 at 8:36 AM, Jothybasu Selvaraj <jothybasu at gmail.com>
> wrote:
> > I ma creating the polydat per conoutr like this
> >
> > vtkSmartPointer<vtkPolyData>polydataContour=
> >
> > vtkSmartPointer<vtkPolyData>::New();
> >
> > polydataContour->Initialize();
> >
> > polydataContour->SetPolys( cells );//vtkCellArray
> >
> > polydataContour->SetPoints( points);//vtkPoints
> >
> >
> > How should I do that?
> >
> > Thanks very much
> >
> > Jothy
> >
> >
> > On Tue, Mar 6, 2012 at 3:31 PM, David Gobbi <david.gobbi at gmail.com>
> wrote:
> >>
> >> The contours must be polylines, not polygons, or it won't work.
> >>
> >> On Tue, Mar 6, 2012 at 6:29 AM, Jothybasu Selvaraj <jothybasu at gmail.com
> >
> >> wrote:
> >> > Yes, I have one contour for each z slice as a vtkPolyData. I will try
> >> > removing that.
> >> >
> >> > Thanks
> >> >
> >> >
> >> > On Tue, Mar 6, 2012 at 1:26 PM, David Gobbi <david.gobbi at gmail.com>
> >> > wrote:
> >> >>
> >> >> Do you have one contour for each Z slice? If so, then try removing
> >> >> the Extrude filter from your pipeline.
> >> >>
> >> >>
> >> >> On Tue, Mar 6, 2012 at 2:51 AM, Jothybasu Selvaraj
> >> >> <jothybasu at gmail.com>
> >> >> wrote:
> >> >> > Another point here,
> >> >> >
> >> >> > I am creating a vtkPolyData for each contour and then adding it to
> >> >> > the
> >> >> > vtkAppendPolydataFilter, then the output of vtkAppenPolydataFilter
> is
> >> >> > set as
> >> >> > input to vtkPolydataToImageStencil.
> >> >> >
> >> >> > Could this make any difference?
> >> >> >
> >> >> > Thanks
> >> >> >
> >> >> > Jothy
> >> >> >
> >> >> >
> >> >> > On Mon, Mar 5, 2012 at 7:49 PM, Jothybasu Selvaraj
> >> >> > <jothybasu at gmail.com>
> >> >> > wrote:
> >> >> >>
> >> >> >> No, it doesn't fix the problem.
> >> >> >>
> >> >> >> But it seems to work fine for contours with z-spacing in steps of
> >> >> >> 1mm.
> >> >> >>
> >> >> >> It is working well for a dataset with 3mm spacing but fails for
> 2.5
> >> >> >> mm.
> >> >> >>
> >> >> >> Maybe I need to test it thoroughly. Can I use those cxx and .h
> from
> >> >> >> 5.6
> >> >> >> in
> >> >> >> 5.8, that would be a easy workaround.
> >> >> >>
> >> >> >> Thanks
> >> >> >>
> >> >> >> Jothy
> >> >> >>
> >> >> >>
> >> >> >> On Mon, Mar 5, 2012 at 4:01 PM, David Gobbi <
> david.gobbi at gmail.com>
> >> >> >> wrote:
> >> >> >>>
> >> >> >>> Hi Jothy,
> >> >> >>>
> >> >> >>> It underwent significant changes, but the only change I can think
> >> >> >>> of that might have affected your pipeline is the way that it does
> >> >> >>> rounding, it used to use a Floor() method that provided a small
> >> >> >>> tolerance even if you did SetTolerance(0). Try calling
> >> >> >>> SetTolerance(1e-6) on your PolyDataToImageStencil object, it
> >> >> >>> might help.
> >> >> >>>
> >> >> >>> - David
> >> >> >>>
> >> >> >>> On Mon, Mar 5, 2012 at 3:17 AM, Jothybasu Selvaraj
> >> >> >>> <jothybasu at gmail.com>
> >> >> >>> wrote:
> >> >> >>> > Hi all,
> >> >> >>> >
> >> >> >>> > I was able to create a mesh using the following pipeline in 5.6
> >> >> >>> > and
> >> >> >>> > it
> >> >> >>> > worked well
> >> >> >>> >
> >> >> >>> >
> >> >> >>> >
> >> >> >>> >
> >> >> >>> >
> vtkPolyDataToImageStencil->vtkLinearExtrusionFilter->vtkImageStencil->vtkDiscreteMarchingCubes
> >> >> >>> >
> >> >> >>> > Now, I have updated vtk to 5.8 and I am getting gaps in the
> mesh
> >> >> >>> > along
> >> >> >>> > the z
> >> >> >>> > axis. I am really puzzled, I have tried with different data
> sets
> >> >> >>> > as
> >> >> >>> > well.
> >> >> >>> >
> >> >> >>> > I have read somewhere that vtkPolyDataToImageStencil had some
> >> >> >>> > changes
> >> >> >>> > in
> >> >> >>> > 5.8, does it has anything to do with this problem, or am I
> doing
> >> >> >>> > anything wrong?
> >> >> >>> >
> >> >> >>> > I have contours of constant z-spacing.
> >> >> >>> >
> >> >> >>> > Any hints?
> >> >> >>> >
> >> >> >>> > Thanks
> >> >> >>> >
> >> >> >>> > --
> >> >> >>> > Jothy
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >> --
> >> >> >> Jothy
> >> >> >>
> >> >> >
> >> >> >
> >> >> >
> >> >> > --
> >> >> > Jothy
> >> >> >
> >> >
> >> >
> >> >
> >> >
> >> > --
> >> > Jothy
> >> >
> >
> >
> >
> >
> > --
> > Jothy
> >
>
--
Jothy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20120309/ff288782/attachment.htm>
More information about the vtkusers
mailing list