[Insight-users] VTK - ITK - VTK Pipeline problems
Jesse C Cronce
croncejc at mrctr.upmc.edu
Mon Oct 31 12:06:14 EST 2005
If you do a DisconnectPipeline, that will also disconnect memory
management of the image from the ITK libraries as well, right ? (meaning
that the memory will have to be deleted/freed when no longer in use)
Also, if you call a GetOutput() on the filter that has been disconnected
from the pipeline, it looks like the result should be a NULL pointer
(from the code itkDataObject.cxx -
m_Source->SetNthOutput(m_SourceOutputIndex, 0);
) is this also correct ?
Thanks!
JCC
On Mon, 2005-10-31 at 10:53 -0500, Karthik Krishnan wrote:
> Did you try to disconnect the objects from teh pipeline ?
>
> In ITK:
>
> filter->Update();
> itkImage = filter->GetOutput();
> itkImage->DisconnectPipeline();
>
> In VTK:
>
> use UnRegisterAllOutputs() to disconnect the pipeline
> or use ShallowCopy
>
>
>
> Istvan Matis wrote:
>
> > Hello ITK users,
> >
> > I am using a complex pipeline to convert vtkImageData to itk Image,
> > apply some filters on it (each time a different filter) like
> > smoohting, segmentation, then convert back to VTK in order to
> > visualize it.
> > My problem is that I receive various errors, "unhandled exceptions"
> > sometimes in the itk sources sometimes in system dlls, usually when I
> > want to apply the itk filters for the 2nd time.
> >
> > I am using the same pipeline several times on several (different)
> > images read into VTK.
> > As I understood, if one element (object) in the VTK->ITK->VTK pipeline
> > is destroyed the whole pipeline will crash. In order to prevent this I
> > use vtkImageCast to "Clone" the final vtk output in order to separate
> > the output vtkImageData from the whole pipeline.
> >
> > Here is the sketch of the pipeline:
> >
> > vtkImageData Input ->
> > -> vtkImageCast ->
> > -> vtkImageData Input 2 ->
> > -> itk::VTKImageToImageFilter ->
> > -> itk::Image ->
> > -> " different itk filter each time: ex:
> > itk::ConnectedThresholdImageFilter or itk::CurvatureFlowImageFilter " ->
> > -> itk::Image Output ->
> > -> itk::ImageToVTKImageFilter ->
> > -> vtkImageData Output ->
> > -> vtkImageCast ->
> > -> vtkImageData Output 2
> >
> > I use ->Update() at every step!
> >
> > By the way I am using itk 2-0-0, vtk 4-4, VC++6 with SP6, WinXP Pro.
> >
> > Is a solution to recreate (Delete() and New()) all the itk and vtk
> > filters in the pipeline each time they need to be used? I observed
> > that if I destroy even one of these filters the whole thing crashes,
> > and not immediately, but sooner or later, somewhere when vtk needs the
> > data.
> >
> > My question is:
> > How can I separate the resulting vtkImage from the whole vtk-itk-vtk
> > pipeline once it was processed?
> > Or more generally:
> > How can I reuse the whole pipeline on different images with different
> > sizes and attributes?
> >
> > Any hints will be gratefully apreciated.
> >
> > Sincerelly,
> > Istvan
> >
> >
> >
> >------------------------------------------------------------------------
> >
> >_______________________________________________
> >Insight-users mailing list
> >Insight-users at itk.org
> >http://www.itk.org/mailman/listinfo/insight-users
> >
> >
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
More information about the Insight-users
mailing list