[vtk-developers] imaging pipeline bug

Amy Henderson amy.henderson at kitware.com
Mon Jan 3 14:20:34 EST 2005


Hi Dean,

I just tried your script with the current CVS version of VTK.  The script 
ran fine (i.e., it did not crash; I don't know what the correct results are 
for your script).  You might want to try updating your VTK 
again.  vtkImageAccumulate.cxx is now at revision 1.57.  At revision 1.51, 
it had not yet been converted to use the new pipeline.

- Amy

At 11:33 AM 1/3/2005, dean.inglis at camris.ca wrote:
>Hi,
>
>a while back, I had developed a pipeline
>for polygonal region of interest analysis
>of 2D images using:
>
>vtkImageData -> vtkImageTracerWidget
>    |                 |
>    |            vtkPolyData
>    |                 |
>    |            vtkLinearExtrusionFilter
>    |                 |
>    |            vtkPolyDataToImageStencil
>    |             |              |
>    vtkImageStencil              |
>    |                            |
>vtkImageMapToWindowLevelColors  |
>    |                            |
>vtkImageActor         vtkImageAccumulate (rev. 1.51)
>
>With recent revisions (after conversion to the new pipeline), the pipeline
>crashes in both .cxx and .tcl test codes upon requesting image stats
>from vtkImageAccumulate (e.g. GetMean, etc.).
>
>Enclosed is a simplified (no vtkImageTracerWidget required) .tcl
>script that demonstrates the problem with the latest vtk cvs checkout
>(a .cxx version is also available).  Not being overly familiar with the 
>mechanics
>of the (still evolving?) new pipeline is making the debug of this difficult.
>Any help would be greatly appreciated as I would like to prepare to adapt
>my production builds and local classes to include the new vtk pipeline code.
>
>thanks,
>dean
>
>/////////////////////////////////////////////////////////////////////////////////////////////////////
>package require vtk
>package require vtkinteraction
>
>   vtkVolume16Reader v16
>   v16 SetDataDimensions 64 64
>   v16 SetDataByteOrderToLittleEndian
>   v16 SetImageRange 1 93
>   v16 SetDataSpacing 3.2 3.2 1.5
>   v16 SetFilePrefix "$VTK_DATA_ROOT/Data/headsq/quarter"
>   v16 ReleaseDataFlagOn
>   v16 SetDataMask 0x7fff
>
>   vtkExtractVOI extract
>   extract SetVOI 31 31 0 63 0 92
>   extract SetSampleRate 1 1 1
>   extract SetInput [v16 GetOutput]
>   extract ReleaseDataFlagOff
>   extract Update
>
>   set range [[extract GetOutput] GetScalarRange]
>   set min [lindex $range 0]
>   set max [lindex $range 1]
>   set diff [expr $max - $min]
>   set avg [expr 0.5*($max + $min)]
>   set bounds [[extract GetOutput] GetBounds]
>
>   vtkPoints points
>   points SetNumberOfPoints 5
>
>   set x [lindex $bounds 0]
>   set y0 [expr 0.25*[lindex $bounds 3]]
>   set y1 [expr 0.75*[lindex $bounds 3]]
>   set z0 [expr 0.25*[lindex $bounds 5]]
>   set z1 [expr 0.75*[lindex $bounds 5]]
>
>   points SetPoint 0 $x $y0 $z0
>   points SetPoint 1 $x $y1 $z0
>   points SetPoint 2 $x $y1 $z1
>   points SetPoint 3 $x $y0 $z1
>   points SetPoint 4 $x $y0 $z0
>
>   vtkCellArray cells
>   cells InsertNextCell 5
>
>   for {set i 0} {$i < 5} {incr i} {
>     cells InsertCellPoint $i
>     }
>
>   vtkPolyData region
>   region SetPoints points
>   region SetLines cells
>
>   vtkPolyDataMapper regionMapper
>   regionMapper SetInput region
>
>   vtkActor regionActor
>   regionActor SetMapper regionMapper
>   [regionActor GetProperty ] SetColor 1 0 0
>
>   vtkLinearExtrusionFilter extrude
>   extrude SetScaleFactor 1
>   extrude SetExtrusionTypeToNormalExtrusion
>   extrude SetVector 1 0 0
>   extrude SetInput region
>
>   vtkPolyDataToImageStencil dataToStencil
>   dataToStencil SetInput [extrude GetOutput]
>
>   vtkImageStencil stencil
>   stencil SetInput [extract GetOutput]
>   stencil SetStencil [dataToStencil GetOutput]
>   stencil ReverseStencilOff
>   stencil SetBackgroundValue $min
>
>   vtkImageMapToWindowLevelColors imageMapper
>   imageMapper SetOutputFormatToLuminance
>   imageMapper SetInput [stencil GetOutput]
>   imageMapper SetLevel $avg
>   imageMapper SetWindow $diff
>
>   vtkImageActor imageActor
>   imageActor SetInput [imageMapper GetOutput]
>   imageActor SetDisplayExtent 31 31 0 63 0 92
>   imageActor InterpolateOff
>
>   vtkImageAccumulate accum
>   accum SetInput [extract GetOutput]
>   accum ReverseStencilOff
>   accum SetStencil [stencil GetStencil]
>   accum SetComponentSpacing 1 0 0
>   accum SetComponentExtent 0 $diff 0 0 0 0
>   accum SetComponentOrigin $min 0 0
>   accum ReleaseDataFlagOff
>   accum Update
>
>   set aN [accum GetVoxelCount]
>   set amin [accum GetMin]
>   set amax [accum GetMax]
>   set amean [accum GetMean]
>   set astd  [accum GetStandardDeviation]
>
>   set atext {}
>   append atext "N: "
>   append atext [string toupper $aN]
>   append atext ", \["
>   append atext [string toupper [lindex $amin 0] ]
>   append atext " -> "
>   append atext [string toupper [lindex $amax 0] ]
>   append atext "\] "
>   append atext [string toupper [lindex $amean 0] ]
>   append atext " +- "
>   append atext [string toupper [lindex $astd 0] ]
>   append atext " HU"
>
>   vtkTextActor textActor
>   textActor ScaledTextOff
>   textActor SetInput $atext
>   [textActor GetPositionCoordinate] SetCoordinateSystemToNormalizedDisplay
>   [textActor GetPositionCoordinate] SetValue 0.01 0.99
>
>   set tprop [textActor GetTextProperty]
>   $tprop SetFontSize 16
>   $tprop SetFontFamilyToArial
>   $tprop BoldOff
>   $tprop ItalicOff
>   $tprop ShadowOff
>   $tprop SetLineSpacing 0.9
>   $tprop SetJustificationToLeft
>   $tprop SetVerticalJustificationToTop
>   $tprop SetColor 1 1 0
>
>   vtkRenderer ren
>   ren SetBackground 0.4 0.4 0.5
>
>   vtkRenderWindow renWin
>   renWin AddRenderer ren
>   renWin SetSize 400 400
>
>   vtkInteractorStyleImage interactor
>
>   vtkRenderWindowInteractor iren
>   iren SetInteractorStyle interactor
>   iren SetRenderWindow renWin
>
>   ren AddProp imageActor
>   ren AddProp regionActor
>   ren AddProp textActor
>
>   iren AddObserver UserEvent {wm deiconify .vtkInteract}
>   renWin Render
>
>   set cam [ren GetActiveCamera]
>   $cam SetViewUp 0 1 0
>   $cam Azimuth 270
>   $cam Roll 270
>   $cam Dolly 1.7
>   ren ResetCameraClippingRange
>
>   renWin Render
>
># Prevent the tk window from showing up then start the event loop.
>   wm withdraw .
>
>
>
>
>_______________________________________________
>vtk-developers mailing list
>vtk-developers at vtk.org
>http://www.vtk.org/mailman/listinfo/vtk-developers






More information about the vtk-developers mailing list