[vtkusers] Marching Contours Error

Mathieu Malaterre mathieu.malaterre at kitware.com
Wed Jun 9 13:53:51 EDT 2004


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