Difference between revisions of "Slicer3:Transition Testing"
From Slicer Wiki
m (1 revision) |
|||
Line 25: | Line 25: | ||
{| border="1" | {| border="1" | ||
− | |- bgcolor="# | + | |- bgcolor="#ccccff" |
! Test Name | ! Test Name | ||
! Priority | ! Priority | ||
Line 59: | Line 59: | ||
| | | | ||
| 1 | | 1 | ||
− | | not compatible with VTK | + | | not compatible with VTK 5 ?? - can be removed |
| VTK 5.x has shaders, nicer to use in this context | | VTK 5.x has shaders, nicer to use in this context | ||
| vtkFog | | vtkFog | ||
Line 90: | Line 90: | ||
| 3 | | 3 | ||
| Handy to keep | | Handy to keep | ||
− | | Compare to | + | | Compare to vtkImageCursor3D ?? |
| vtkImageCrossHair2D | | vtkImageCrossHair2D | ||
|- | |- | ||
| | | | ||
| 3 | | 3 | ||
− | | Great if this were in vtk<br />Need doc, remove FileName stuff, minor cleanup .. good to | + | | Great if this were in vtk<br />Need doc, remove FileName stuff, minor cleanup .. good to go ! |
| Move to EMSegment (too specific) | | Move to EMSegment (too specific) | ||
| vtkImageCurveRegion | | vtkImageCurveRegion | ||
Line 231: | Line 231: | ||
{| border="1" | {| border="1" | ||
− | |- bgcolor="# | + | |- bgcolor="#ccccff" |
! Test Name | ! Test Name | ||
! Priority | ! Priority | ||
Line 241: | Line 241: | ||
| 1 | | 1 | ||
| I don't think this is needed anymore - right | | I don't think this is needed anymore - right | ||
− | | | + | | vtkEuclideanPlaneFit ? |
| vtkDistractorSource | | vtkDistractorSource | ||
|- | |- | ||
Line 270: | Line 270: | ||
{| border="1" | {| border="1" | ||
− | |- bgcolor="# | + | |- bgcolor="#ccccff" |
! Test Name | ! Test Name | ||
! Priority | ! Priority | ||
Line 325: | Line 325: | ||
{| border="1" | {| border="1" | ||
− | |- bgcolor="# | + | |- bgcolor="#ccccff" |
! Test Name | ! Test Name | ||
! Priority | ! Priority | ||
Line 354: | Line 354: | ||
{| border="1" | {| border="1" | ||
− | |- bgcolor="# | + | |- bgcolor="#ccccff" |
! Test Name | ! Test Name | ||
! Priority | ! Priority | ||
Line 385: | Line 385: | ||
{| border="1" | {| border="1" | ||
− | |- bgcolor="# | + | |- bgcolor="#ccccff" |
! Test Name | ! Test Name | ||
! Priority | ! Priority | ||
Line 410: | Line 410: | ||
{| border="1" | {| border="1" | ||
− | |- bgcolor="# | + | |- bgcolor="#ccccff" |
! Test Name | ! Test Name | ||
! Priority | ! Priority | ||
Line 435: | Line 435: | ||
{| border="1" | {| border="1" | ||
− | |- bgcolor="# | + | |- bgcolor="#ccccff" |
! Test Name | ! Test Name | ||
! Priority | ! Priority | ||
Line 522: | Line 522: | ||
{| border="1" | {| border="1" | ||
− | |- bgcolor="# | + | |- bgcolor="#ccccff" |
! Class Name | ! Class Name | ||
! Priority | ! Priority | ||
Line 641: | Line 641: | ||
{| border="1" | {| border="1" | ||
− | |- bgcolor="# | + | |- bgcolor="#ccccff" |
! Class Name | ! Class Name | ||
! Priority | ! Priority | ||
Line 730: | Line 730: | ||
{| border="1" | {| border="1" | ||
− | |- bgcolor="# | + | |- bgcolor="#ccccff" |
! Test Name | ! Test Name | ||
! Priority | ! Priority | ||
Line 749: | Line 749: | ||
{| border="1" | {| border="1" | ||
− | |- bgcolor="# | + | |- bgcolor="#ccccff" |
! Test Name | ! Test Name | ||
! Priority | ! Priority | ||
Line 774: | Line 774: | ||
{| border="1" | {| border="1" | ||
− | |- bgcolor="# | + | |- bgcolor="#ccccff" |
! Class Name | ! Class Name | ||
! Priority | ! Priority | ||
Line 863: | Line 863: | ||
{| border="1" | {| border="1" | ||
− | |- bgcolor="# | + | |- bgcolor="#ccccff" |
! Test Name | ! Test Name | ||
! Priority | ! Priority |
Latest revision as of 18:07, 20 May 2008
Home < Slicer3:Transition TestingThis page will describe the current status of testing classes of slicer2.
Contents
Modules to test
The Piority one modules are:
- Base
- vtkTensorUtil (mathieu)
- vtkDTMRI (mathieu)
- vtkEMAtlasBrainClassifier (Katie)
- vtkEMLocalSegment (Katie)
- vtkFreeSurferReaders (Nicole)
Within each of those modules, each class has a priority rank from 0 (non important) to 5 (very important)
And then the status specify if the task is not done (default), partial, or completed
Base
Nicole will look at the base classes to determine which ones need tests.
Potential candidates classes
Test Name | Priority | Status | Description | Dependencies |
---|---|---|---|---|
1 | If kept, need rewrite because of the use of static var (cleanup not done properly) | See vtkPolyBoolean | vtkBoolTess | |
0 | This is a simple macro, could be merged in one place | vtkCellTriMacro | ||
1 | A vtk version would be good - does it exist (endoscopy package)? Comment:Use of vtkShortArray explicitely, use of vtkStructuredPoints, Write function instead of pipeline to writer... |
vtkPolyDataToImageStencil/vtkImageStencil |
vtkDataSetToLabelMap | |
3 | Minor diff with current VTK implementation (uses vtkOBBTree internally) Change will not be merged in VTK since result is slower and produce error Generic Warning: In /home/mathieu/Dashboards/MyTests/ParaView/VTK/Common/vtkMath.cxx, line 717 vtkMath::Jacobi: Error extracting eigenfunctions |
Hardware picking (backbuffer) would be better | vtkFastCellPicker | |
1 | not compatible with VTK 5 ?? - can be removed | VTK 5.x has shaders, nicer to use in this context | vtkFog | |
1 | not used? - can be removed | ITK has FastMarching with input a list of points (level set) | vtkImageBandedDistanceMap | |
5 | Would be good to keep or find ITK way Well written, clear |
Separate population (~Otsu), stays in slicer | vtkImageBimodalAnalysis | |
5 | Needed for Editor Well written, clear (only short type supported) |
Stays in Slicer | vtkImageConnectivity | |
3 | Could be replaced by vtk clases very slicer specific, should be rewritten with vtkImageData::DeepCopy |
Stays in Slicer | vtkImageCopy | |
3 | Handy to keep | Compare to vtkImageCursor3D ?? | vtkImageCrossHair2D | |
3 | Great if this were in vtk Need doc, remove FileName stuff, minor cleanup .. good to go ! |
Move to EMSegment (too specific) | vtkImageCurveRegion | |
1 | ? | Move to EM | vtkImageDrawObjects | |
1 | Used for editor looks like vtkPolyDataToImageStencil+vtkImageStencil... |
Stays in Slicer | vtkImageDrawROI | |
1 | Important for slicer2 editor compare to vtkImageContinuousErode3D |
ITK has a fast erosion (ErodeMorphometric, single object) | vtkImageErode | |
1 | Important for slicer2 editor | Nice to merge with vtkImageDrawROI | vtkImageFillROI | |
0 | Is there a vtk class for this? vtkWindowToImageFilter or vtkRenderLargeImage |
vtkWindowToImage | vtkImageFrameSource | |
1 | Move to EM | vtkImageGraph | ||
1 | Used in Editor | vtkImageMathematics can do that (SetOperationToReplaceCByK) | vtkImageLabelChange | |
Needed for slice display | vtkImageLabelOutline | |||
Editor | vtkImageLabelVOI | |||
0 | Is there a vtk replacement? | might not be needed if switching to ITK | vtkImageNeighborhoodFilter | |
0 | Replace with something from KWWidgets? why not vtkXYPlotActor? |
Use instead: vtkKWHistogram | vtkImagePlot | |
0 | Move to MRML | vtkImageRealtimeScan | ||
1 | Needed for editor | ITK has a notion of itkPaste... | vtkImageReplaceRegion | |
0 | Could be dropped (maybe speedups can go to vtk?) Well written, a few bugs in comments can be use to extent vtkLoookupTable... |
vtkIndirectLookupTable | ||
1 | Can easily be added into vtkMath done | Outer product, rest should be vnl (be carefull with numerical recipe...) | vtkMathUtils | |
0 | Better to use std formate if possible | vtkPolyDataWriter (to write set of points) | vtkPTSWriter | |
1 | Would be great functionality to move to vtk compare it to vtkImageMathematics/vtkImageLogic? ITK? |
vtkPolyBoolean | ||
0 | no need | vtkSlicer | ||
0 | no need | vtkSlicerBaseWin32Header | ||
3 | Used for measure - does vtk have something like this? Looks like a patch vtkMassPropertiesdone (04/28/06) |
Should enhance vtkMassProperties | vtkSurfaceProps | |
0 | for the Twin module?? | vtkXDisplayWindow |
Class being dropped
Test Name | Priority | Status | Description | Dependencies |
---|---|---|---|---|
1 | I don't think this is needed anymore - right | vtkEuclideanPlaneFit ? | vtkDistractorSource | |
0 | I dont think this is needed anymore Looks like vtkImageEuclideanDistance |
old Oliver Cuisenaire class | vtkImageEuclideanDistanceTransformation | |
0 | Better to use a vtkPolyData | vtkPolyData | vtkPolygonList | |
0 | should be vtkPolyData | vtkPolyData | vtkStackOfPolygons |
Class that might have a vtk replacement already
...with vtkImageReslice
Test Name | Priority | Status | Description | Dependencies |
---|---|---|---|---|
could be ImageReslice | vtkImageCloseUp2D | |||
Could be a vtkImageReslice | vtkImageDouble2D | |||
Replace with vtkImageReslice | vtkImageReformat | |||
Replace with vtkImageReslice | vtkImageReformatIJK | |||
Should switch to vtkImageReslice | vtkImageResize | |||
vtkImageReslice | vtkImageZoom2D | |||
Why not use vtkImageReslice | vtkResliceImage |
...with vtkImageAccumulate
Test Name | Priority | Status | Description | Dependencies |
---|---|---|---|---|
Useful What is the diff with vtkImageAccumulate? |
Simply pipe to a vtkImageCast | vtkImageAccumulateDiscrete | ||
Could be done with an accumulate | vtkImageMeasureVoxels | |||
3 | Can move to vtkImageAccumulate. Done(04/27) | Need the NonZero option so can switch to vtkImageAccumulate or better switch to itk::Histogram | vtkImageStatistics |
Test Name | Priority | Status | Description | Dependencies |
---|---|---|---|---|
Why not reuse vtkDICOMImageReader? | vtkDCMLister | |||
Why not reuse vtkDICOMImageReader? | vtkDCMParser | |||
Why not reuse vtkDICOMImageReader? | vtkImageDICOMReader |
...with vtkImageBlend
Test Name | Priority | Status | Description | Dependencies |
---|---|---|---|---|
0 | Will probably transition to vtkImageBlend | vtkImageBlend | vtkImageOverlay | |
1 | Done, VTK CVS has a completely rewritten from scratch vtkImageWeightedSum | Maybe could be vtkImageBlend? Need a patched vtkImageMathmatics (sa vtkImplicitSum) | vtkImageWeightedSum |
Class specific for Slicer (Editor)
Test Name | Priority | Status | Description | Dependencies |
---|---|---|---|---|
Important for slicer2 editor | vtkImageEditor | |||
Important for slicer2 editor | vtkImageEditorEffects |
Class that will be moved to Module
Test Name | Priority | Status | Description | Dependencies |
---|---|---|---|---|
Livewire -> Move to Module | vtkImageLiveWire | |||
Livewire -> Move to Module | vtkImageLiveWireEdgeWeits | |||
Livewire -> Move to Module | vtkImageLiveWireScale | |||
Livewire -> Move to Module | vtkImageLiveWireTester | |||
Move to a PhaseWire module | vtkImageDijkstra |
MRML
Testing should be done by Alex.
vtkMrmlColorNode vtkMrmlCrossSectionNode vtkMrmlData vtkMrmlDataTetraMe vtkMrmlDataVolume vtkMrmlDataVolumeReadWrite vtkMrmlDataVolumeReadWriteStructuredPoints vtkMrmlEndFiducialsNode vtkMrmlEndHieraryNode vtkMrmlEndModelGroupNode vtkMrmlEndPaNode vtkMrmlEndScenesNode vtkMrmlEndTransformNode vtkMrmlEndVolumeStateNode vtkMrmlFiducialsNode vtkMrmlHieraryNode vtkMrmlLandmarkNode vtkMrmlLocatorNode vtkMrmlMatrixNode vtkMrmlModelGroupNode vtkMrmlModelNode vtkMrmlModelRefNode vtkMrmlModelStateNode vtkMrmlNode vtkMrmlOptionsNode vtkMrmlPaNode vtkMrmlPointNode vtkMrmlSceneOptionsNode vtkMrmlScenesNode vtkMrmlSlicer vtkMrmlTetraMeNode vtkMrmlTransformNode vtkMrmlTree vtkMrmlVolumeNode vtkMrmlVolumeReadWriteNode vtkMrmlVolumeReadWriteStructuredPointsNode vtkMrmlVolumeStateNode vtkMrmlWindowLevelNode
vtkTensorUtil
Class Name | Priority | Status | Description | Dependencies |
---|---|---|---|---|
vtkBSplineInterpolateImageFunction | 2 | Partial (VTKTENSORUTIL.TestBSplineInterpolateImageFunction) | Interpolation of a image with a BSpline kernel. The class compute the interpolated value for a given specific location, then the image can be treated as an ImplicitFunction | Use in the PreciceStreamline process. This class is used by vtkPreciseHyperStreamline after being encapsulated in vtkTensorImplicitFunctionToFunctionSet |
vtkImageGetTensorComponents | 4 | This class get each tensor component as a different vtkImageData | This class is used in the registration framework of the DTMRI module based on the framework provided by vtkAG module. One of the registration modalities is to register each tensor component as a input channel in the vtkAG multichannel tensor framework | |
vtkPreciseHyperPoint | 2 | This class is a helper class for the streamline method implemented by vtkPreciseHyperStreamline | vtkPreciseHyperStreamline | |
vtkSuperquadricTensorGlyph | 5 | Main class to perform glyph rendering | Directly invoke from the tcl script to set up the glyph rendering pipeline (DTMRIGlyphs.tcl) | |
vtkTensorMathematics | 5 | Main class to perform serveral scalar calculation from a tensor field | Directly invoke in DTMRICalculateScalars.tcl | |
vtkHyperPointandArray | 4 | Helper class to keep the state info of the streamline/tractography algorithm | Used by vtkHyperStreamlineDTMRI | |
vtkImageSetTensorComponents | 4 | Pack different image channels into a Tensor field. | Used in the registration framework. | |
vtkPreciseHyperStreamline | 2 | Streamer class to do tractography using the Higher Order Runge Kutta | This class relies on the BSpline Interpolation classes to have a precise interpolation of the tensor field, needed by the high order Runge Kutta | |
vtkTensorFlip | 1 | Helper class to flip a tensor field | I do not think is currently use in any pipeline process. However it is an interesting class to have just as a pure extension of vtkImageFlip | |
vtkVectorToOuterProductDualBasis | 1 | Class to compute the Dual basis of the outer product of a set of vectors | This helper class was originally used for the estimation of diffusion tensor using Dual basis. The Estimation class was update to rely on a simple SVD for the computation of the B-matrix. This class is going to suffer further changes in an attempt to use teem as a main tensor estimation engine. | |
vtkHyperStreamlineDTMRI | 5 | Main class to do DTI tractography in the Slicer. Overload part of the functionality of vtkHyperStreamline | Used by vtkSeedTracts.cxx in the DTMRI module. | |
vtkInteractiveTensorGlyph | 5 | Main class to do DTI glyph rendering in the Slicer (what is the diff with vtkSuperquadricTensorGlyph) | Direclty invoked in DTMRIGlyphs.tcl | |
vtkPreciseHyperStreamlinePoints | 3 | Helper class to keep the state info of PreciseHyperStreamline class | Used by vtkSeedTracts.cxx | |
vtkTensorImplicitFunctionToFunctionSet | 3 | Class to evaluate a tensor field at a given location | Used by vtkPreciseHyperStreamline when doing the integration | |
vtkHyperStreamlineTeem | 2 | Tractography class encapsulating teem tractography framework | Use by vtkSeedTracts. This class is still in alpha state. | |
vtkPreciseHyperArray | 3 | Helper class to keep PreciseHyperStreamline state | Used by vtkPreciseHyperStreamlinePoints | |
vtkSuperquadricSource2 | 5 | Modification of the Superquadric class to implement the superquadric glyphs as published by Gordon (the two class should be merged) | Used by vtkSuperquadricTensorGlyph | |
vtkTensorMask | 5 | Mask a tensor field | Used in the visualization pipeline in the DTMRI module |
vtkDTMRI
Class Name | Priority | Status | Description | Dependencies |
---|---|---|---|---|
vtkClusterTracts | 5 | Controller-type object to do Spectral clustering. This class take a Collecition of streamline and perform clustering upon user requests (The class is not a process object) although it could be designed in that sense. The design idea was to encapsulate clustering pipeline with that relies on itk::SpectralClustering (NAMIC sandbox) | Depends on itkSpectralClustering and vtkTractShapeFeatures | |
vtkColorROIFromPolyLines | 3 | |||
vtkColorROIFromTracts | 3 | |||
vtkDisplayTracts | 5 | Controller-type object that implement the visualization pipeline for the tracts/streamlines. | This class is used/managed by vtkMultipleStreamlineController | |
vtkEstimateDiffusionTensor | 2 | New interface to perform tensor fitting. This class is intented to rely on teem for doing tensor model fitting. This class will replace vtkImageDiffusionTensor | currently not used | |
vtkImageDiffusionTensor | 5 | Tensor fitting class. This class currently perform the job of tensor estimation | Used in DTMRICalculateTensor.tcl | |
vtkImageExtractSlices | 5 | Class used to split a Volume with multiple DWI acquistions in different volumes. As of Today slicer stores DWI as a stacked of 3D volumes. As part of NRRD support this process is going to evolve such as DWI are seen as a multicomponent 3D volume (a more natural way of looking at DWI images | Used in DTMRICalculateTensor.tcl | |
vtkLSDIreconTensor | 0 | Depreceated class | ||
vtkMrmlTractGroupNode | ||||
vtkMrmlTractsNode | ||||
vtkMultipleStreamlineController | 5 | Manager class for tractography. This class has pointers to the classes in charge of seeding, visualizing and storing streamlines. | Used as main hub for tractography | |
vtkODFGlyph | 0 | Class for Q-ball glyph rendering | This class required a custom Q-ball images type developed by D. Tuch. | |
vtkPruneStreamline | ||||
vtkROISelectTracts | ||||
vtkSaveTracts | ||||
vtkSeedTracts | ||||
vtkStochasticTracking | 1 | Class under development | ||
vtkStreamlineConvolve | ||||
vtkTractShapeFeatures | 5 | Compute different similarity metrics between fibers used for the clustering | Used by vtkClusterTracts |
vtkEMAtlasBrainClassifier
Katie will transition older tests into Dart framework.
Test Name | Priority | Status | Description | Dependencies |
---|---|---|---|---|
TestImageEMAtlas.tcl | 3 | TBD | big test | vtkEMLocalSegment |
vtkEMLocalSegment
Katie will first transition older tests into Dart framework.
Test Name | Priority | Status | Description | Dependencies |
---|---|---|---|---|
TestImageEMLocalSegment.tcl | 1 | Done | local test | none |
TestImageEMMarkov.tcl | 2 | In progress | markov test | none |
vtkFreeSurferReaders
Small test surface files written in ascii using the Surface File Formats and then converted to binary using mris_convert.
Class Name | Priority | Status | Description | Dependencies | Test Code |
---|---|---|---|---|---|
vtkBVolumeReader | 4 | TBD | Test reading and rendering of binary short and float volumes | none | |
vtkCORReader | 3 | TBD | Test reading and rendering of COR volumes | none | |
vtkFSIO | 5 | Not necessary | Reads ints, shorts, and floats from compressed or uncompressed files | none | |
vtkFSLookupTable | 2 | Done | Test reading in surface file with overlay and rendering with colours | vtkFSSurfaceReader, vtkFSSurfaceScalarReader | Tcl/testFSLUT.tcl |
vtkFSSurfaceAnnotationReader | 2 | TBD | Test reading in surface with labels | vtkFSSurfaceReader | |
vtkFSSurfaceReader | 2 | Done | Test reading in a simple surface file | none | Tcl/testOrig.tcl |
vtkFSSurfaceScalarReader | 2 | Done | Test reading in surface with scalar | vtkFSSurfaceReader | Tcl/testCurv.tcl |
vtkFSSurfaceWFileReader | 3 | Done | Test reading in W surface | vtkFSSurfaceReader | Tcl/testW.tcl |
vtkGDFReader | 4 | TBD | Read in FreeSurfer group descriptor files | vtkBVolumeReader | |
vtkMGHReader | 1 | Done | Test MGZ file reading and rendering | none | Tcl/testMGZBrain.tcl |
vtkMGHReader | 2 | in progress | Test reading in aseg and rendering with colours | none | Tcl/testMGZAseg.tcl |
Nicole transitioning older tests into Dart framework.
Test Name | Priority | Status | Description | Dependencies |
---|---|---|---|---|
annotation.tcl | 3 | TBD | test annotation overlay | surface and scalar reader |
bvolume.tcl | 1 | TBD | test B volume reading | none |
bvolume_slice.tcl | 2 | TBD | test B volume rendering | none |
scalar.tcl | 3 | TBD | test scalar reading | none |
scalars.tcl | 3 | TBD | test scalars | none |
slice.tcl | 4 | TBD | test slices | none |
surf-quad.tcl | 3 | TBD | test | none |
surf-tri.tcl | 3 | TBD | test | none |