[vtkusers] Marching Contours Error

gcope at engin.umich.edu gcope at engin.umich.edu
Wed Jun 9 15:10:48 EDT 2004


Mathieu,

I also tried writing with the StructuredPoints method and got files much closer
to the size of my data (162 Mb), but they were both still identical for the
input to MarchingContours that works and the one that doesn't.

Thanks,
Jamie

Quoting Mathieu Malaterre <mathieu.malaterre at kitware.com>:

> Jamie,
>
> 	Could you please send us the dataset you are using just before the
> vtkMarchingContourFilter ? For example use vtkStructuredPointsWriter or
> vtkXMLImageDataWriter.
>
> Thanks
> Mathieu
>
> gcope at engin.umich.edu wrote:
> > Mathieu,
> >
> > Thanks for the response. My code is a little verbose, so I'll try to
> pseudocode
> > it down to the relevant parts. Let me know if it's missing anything you
> need to
> > see.
> >
> > - Jamie
> >
> >
> > Code:
> >
> > //In headers:
> > vtkImageData *Contours;
> > vtkMarchingContourFilter *surface;
> >
> > Contours = vtkImageData::New();
> > surface = vtkMarchingContourFilter::New();
> >
> > //Read Data via Itk()
> >
> > //Itk Thresholding & Zero Crossing Filters()
> >
> > //ConnectItktoVtk()
> >
> > //In function mapping data to 2d Actor
> > vtkOImporter->Update();       <----Importer used in ItktoVtk above
> > Contours->ShallowCopy(vtkOImporter->GetOutput());
> >
> > //Marching Contour Function
> > void
> > ItkPipeline
> > ::MarchingCubes()
> > {
> >         surface->SetInput(vtkOImporter->GetOutput());
> > 	surface->SetValue(0,255);
> > }
> >
> > Later on in the pipeline, an "Update" is called and the error occurs on the
> > update of the above function.
> >
> >
> >
> >
> >
> >
> > Quoting Mathieu Malaterre <mathieu.malaterre at kitware.com>:
> >
> >
> >>Could not reproduce the problem using mcubes.tcl:
> >>
> >>vtkImageData img
> >>   img ShallowCopy [v16 GetOutput]
> >>
> >>so please send us the code you were using, thanks.
> >>
> >>Mathieu
> >>Script used:
> >>
> >>package require vtk
> >>package require vtkinteraction
> >>package require vtktesting
> >>
> >>
> >># Create the RenderWindow, Renderer and both Actors
> >>#
> >>vtkRenderer ren1
> >>vtkRenderWindow renWin
> >>     renWin AddRenderer ren1
> >>vtkRenderWindowInteractor iren
> >>     iren SetRenderWindow renWin
> >>
> >># create pipeline
> >>#
> >>vtkVolume16Reader v16
> >>   v16 SetDataDimensions 64 64
> >>   [v16 GetOutput] SetOrigin 0.0 0.0 0.0
> >>   v16 SetDataByteOrderToLittleEndian
> >>   v16 SetFilePrefix "$VTK_DATA_ROOT/Data/headsq/quarter"
> >>   v16 SetImageRange 1 93
> >>   v16 SetDataSpacing 3.2 3.2 1.5
> >>   v16 Update
> >>
> >>vtkImageData img
> >>   img ShallowCopy [v16 GetOutput]
> >>
> >>vtkMarchingContourFilter iso
> >>   iso SetInput img
> >>   iso SetValue 0 1125
> >>
> >>vtkPolyDataMapper isoMapper
> >>   isoMapper SetInput [iso GetOutput]
> >>   isoMapper ScalarVisibilityOff
> >>
> >>vtkActor isoActor
> >>   isoActor SetMapper isoMapper
> >>   eval [isoActor GetProperty] SetColor $antique_white
> >>
> >>vtkOutlineFilter outline
> >>   outline SetInput [v16 GetOutput]
> >>vtkPolyDataMapper outlineMapper
> >>   outlineMapper SetInput [outline GetOutput]
> >>vtkActor outlineActor
> >>   outlineActor SetMapper outlineMapper
> >>   outlineActor VisibilityOff
> >>
> >># Add the actors to the renderer, set the background and size
> >>#
> >>ren1 AddActor outlineActor
> >>ren1 AddActor isoActor
> >>ren1 SetBackground 0.2 0.3 0.4
> >>renWin SetSize 200 200
> >>[ren1 GetActiveCamera] Elevation 90
> >>[ren1 GetActiveCamera] SetViewUp 0 0 -1
> >>[ren1 GetActiveCamera] Dolly 1.5
> >>
> >>
> >>ren1 ResetCameraClippingRange
> >>
> >>renWin Render
> >>
> >># render the image
> >>#
> >>iren AddObserver UserEvent {wm deiconify .vtkInteract}
> >>
> >># prevent the tk window from showing up then start the event loop
> >>wm withdraw .
> >>
> >>
> >>gcope at engin.umich.edu wrote:
> >>
> >>>Hi,
> >>>
> >>>I don't seem to have much luck getting responses, but here goes:
> >>>
> >>>I am getting an "Update Extent does not lie within Whole Extent" error
> upon
> >>>execution of a Marching Contours filter. This also results in a memory
> >>
> >>access
> >>
> >>>error in vtkImageMarchingCubes.cxx at the line "g[2] = (float)(ptr[inc2])
> -
> >>>(float)(ptr[-inc2]);"
> >>>
> >>>What caused the error is attempting to use a ShallowCopy of a filters
> >>
> >>output as
> >>
> >>>the input to the MarchingContour filter rather than directly connecting
> >>
> >>them.
> >>
> >>>When they are directly connected, everything works fine. Does doing a
> >>>ShallowCopy modify the data extent somehow?
> >>>
> >>>Any ideas would be appreciated.
> >>>
> >>>Thanks,
> >>>Jamie
> >>>
> >>>
> >>>_______________________________________________
> >>>This is the private VTK discussion list.
> >>>Please keep messages on-topic. Check the FAQ at:
> >>
> >><http://public.kitware.com/cgi-bin/vtkfaq>
> >>
> >>>Follow this link to subscribe/unsubscribe:
> >>>http://www.vtk.org/mailman/listinfo/vtkusers
> >>>
> >>
> >>
> >>
> >>
> >
> >
> > _______________________________________________
> > This is the private VTK discussion list.
> > Please keep messages on-topic. Check the FAQ at:
> <http://public.kitware.com/cgi-bin/vtkfaq>
> > Follow this link to subscribe/unsubscribe:
> > http://www.vtk.org/mailman/listinfo/vtkusers
> >
>
>
>
>





More information about the vtkusers mailing list