[vtkusers] Marching Contours Error
gcope at engin.umich.edu
gcope at engin.umich.edu
Wed Jun 9 13:35:43 EDT 2004
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
> >
>
>
>
>
More information about the vtkusers
mailing list