[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