Slicer merge requestshttps://gitlab.kitware.com/sjh26/Slicer/-/merge_requests2014-06-29T16:27:25-04:00https://gitlab.kitware.com/sjh26/Slicer/-/merge_requests/132ENH: Added support for oriented grid Transform2014-06-29T16:27:25-04:00Andras LassoENH: Added support for oriented grid Transform- Added a new class, vtkOrientedGridTransform, which is based on vtkGridTransform but orientation of the grid can be specified as well.
- Added test for vtkOrientedGridTransform to verify its derivative and inverse computation and equiva...- Added a new class, vtkOrientedGridTransform, which is based on vtkGridTransform but orientation of the grid can be specified as well.
- Added test for vtkOrientedGridTransform to verify its derivative and inverse computation and equivalence with ITK displacement field transform.
- Simplified vtkMRMLGridTransform node: transform parameters are read/written into ITK transform file, no duplicate saving is done in the scene.
- Removed unused vtkITK files: itkDisplacementFieldTransform, itkEncodedTransformFileReader/Writer, as they were not used (and some of them even had the same name as existing ITK files).
- Support reading/writing of grid transform from/to nrrd, nhdr, mha, mhd, nii, nii.gz files
Resolves:
http://www.na-mic.org/Bug/view.php?id=3597
http://www.na-mic.org/Bug/view.php?id=3444
Partially resolves:
http://www.na-mic.org/Bug/view.php?id=3598
https://gitlab.kitware.com/sjh26/Slicer/-/merge_requests/131COMP: Update git tag to restore color image support in OpenIGTLinkIF2014-05-13T04:53:10-04:00Junichi TokudaCOMP: Update git tag to restore color image support in OpenIGTLinkIFhttps://gitlab.kitware.com/sjh26/Slicer/-/merge_requests/130ENH: Fixed 2498 and other ui enhancements for dicom browser.2014-08-08T11:22:27-04:00Sam HorvathENH: Fixed 2498 and other ui enhancements for dicom browser.*Created by: mehrtash*
This patch would fix
http://na-mic.org/Mantis/view.php?id=2498
and also fix the UI issues which Csaba reported on 2014-04-24 12:17 here:
http://na-mic.org/Mantis/view.php?id=3578
and fix a bug in saving the disabl...*Created by: mehrtash*
This patch would fix
http://na-mic.org/Mantis/view.php?id=2498
and also fix the UI issues which Csaba reported on 2014-04-24 12:17 here:
http://na-mic.org/Mantis/view.php?id=3578
and fix a bug in saving the disabled plugins in Slicer application settings
https://gitlab.kitware.com/sjh26/Slicer/-/merge_requests/129COMP: Update Git tag for OpenIGTLinkIF to support VTK6 (issue #3673)2014-05-08T00:32:30-04:00Junichi TokudaCOMP: Update Git tag for OpenIGTLinkIF to support VTK6 (issue #3673)https://gitlab.kitware.com/sjh26/Slicer/-/merge_requests/128Fixed 2498 and other ui enhancements for dicom browser2014-08-08T11:22:30-04:00Sam HorvathFixed 2498 and other ui enhancements for dicom browser*Created by: mehrtash*
This patch would fix
http://na-mic.org/Mantis/view.php?id=2498
and also fix the UI issues which Csaba reported on 2014-04-24 12:17 here:
http://na-mic.org/Mantis/view.php?id=3578
and fix a bug in saving the disab...*Created by: mehrtash*
This patch would fix
http://na-mic.org/Mantis/view.php?id=2498
and also fix the UI issues which Csaba reported on 2014-04-24 12:17 here:
http://na-mic.org/Mantis/view.php?id=3578
and fix a bug in saving the disabled plugins in Slicer application settings
https://gitlab.kitware.com/sjh26/Slicer/-/merge_requests/127ENH: Remove warning: ‘itk::DiffusionTensor3DRead<float>’ declared with g...2014-06-27T12:54:15-04:00Francois BudinENH: Remove warning: ‘itk::DiffusionTensor3DRead<float>’ declared with g......reater visibility than the type of its field ‘itk::DiffusionTensor3DRead<float>::m_Reader’
See comments: https://github.com/Slicer/Slicer/pull/121
Due to the fact that itkDiffusionTensor3DRead was declaring a private variable of type......reater visibility than the type of its field ‘itk::DiffusionTensor3DRead<float>::m_Reader’
See comments: https://github.com/Slicer/Slicer/pull/121
Due to the fact that itkDiffusionTensor3DRead was declaring a private variable of type itkImageFileReader<DiffusionImageType>::Pointer and that this class was declared with ITK_ABI_EXPORT, we had to add ITK_ABI_EXPORT to the declaration of itkDiffusionTensor3DRead to remove the previously described warning when ResampleDTIVolume was compiled (shared object).
https://gitlab.kitware.com/sjh26/Slicer/-/merge_requests/126COMP: Update Git tag to fix the unused variable warning (Issue #3665).2014-05-08T00:28:24-04:00Junichi TokudaCOMP: Update Git tag to fix the unused variable warning (Issue #3665).https://gitlab.kitware.com/sjh26/Slicer/-/merge_requests/125ENH: Update Git tag for OpenIGTLinkIF to include color image support.2014-04-17T16:35:49-04:00Junichi TokudaENH: Update Git tag for OpenIGTLinkIF to include color image support.Color image support has been implemented in OpenIGTLinkIF.
http://www.na-mic.org/Bug/view.php?id=3649
Color image support has been implemented in OpenIGTLinkIF.
http://www.na-mic.org/Bug/view.php?id=3649
https://gitlab.kitware.com/sjh26/Slicer/-/merge_requests/124ENH: Added visualization of transforms2014-04-16T22:50:29-04:00Andras LassoENH: Added visualization of transformsFeatures:
- Support non-linear transforms in the Transforms module: allow Apply, Harden, Invert transform
- Transform information displayed in the Transforms module (type of transform, basic properties)
- Transform visualization:
*\* B...Features:
- Support non-linear transforms in the Transforms module: allow Apply, Harden, Invert transform
- Transform information displayed in the Transforms module (type of transform, basic properties)
- Transform visualization:
*\* Built into the Transforms module
*\* Three main modes: Glyphs (show an array of arrows, cones, spheres), Grid (show a deformed grid), or Contour (show isolines/isosurfaces for specified displacement magnitude values)
*\* All transform types are supported (chains of transforms as well)
*\* Visualization in the slice viewers
*\* Visualization in the 3D viewers, in the specified region (region can be a slice viewer, a volume, or a ROI widget)
*\* Real-time update: if the transform (or any visualization parameter) is changed then the visualization is updated immediately (interactive visualization while editing the transform)
*\* Built-in colormap editor
- MetaImage (mha), NIFTI (nii) vector volumes can be loaded as displacement field (grid) transform
https://gitlab.kitware.com/sjh26/Slicer/-/merge_requests/123BUG: Separator appears in MRML node combobox menu with custom items only2014-04-07T18:29:01-04:00Csaba PinterBUG: Separator appears in MRML node combobox menu with custom items onlyThe MRML node combobox can have extra items on the top or bottom of the node list. There are built-in extra items, such as None, Add, etc. When these are enabled, then a separator appears between the nodes and the items. However, when no...The MRML node combobox can have extra items on the top or bottom of the node list. There are built-in extra items, such as None, Add, etc. When these are enabled, then a separator appears between the nodes and the items. However, when no built-in extra item is enabled, just custom extra items are added, then the separator did not show up.
https://gitlab.kitware.com/sjh26/Slicer/-/merge_requests/122DICOM Browser auto-examine modifications2014-06-29T07:06:40-04:00Sam HorvathDICOM Browser auto-examine modifications*Created by: mehrtash*
ENH: Store and load selected plugins by users as checked plugins in slicer qsettings (for both simple and advanced mode)
*Created by: mehrtash*
ENH: Store and load selected plugins by users as checked plugins in slicer qsettings (for both simple and advanced mode)
https://gitlab.kitware.com/sjh26/Slicer/-/merge_requests/121BUG: ResampleDTI was using the measurement frame to transfo...2014-04-21T14:20:15-04:00Francois BudinBUG: ResampleDTI was using the measurement frame to transfo......rm tensors from local coordinates to world coordinates
It should be using the space direction of the image instead. The measurement frame should only transform gradient vectors from DWI to world coordinates. To be backward compatible......rm tensors from local coordinates to world coordinates
It should be using the space direction of the image instead. The measurement frame should only transform gradient vectors from DWI to world coordinates. To be backward compatible, if a measurement frame is detected in the MetaData of the image, the measurement frame is still used as the transform matrix from local to world coordinate unless --noMeasurementFrame is specified. If no measurement frame information is available in the image MetaData, the image space direction is used instead (as well as if --noMeasurementFrame is specified).
https://gitlab.kitware.com/sjh26/Slicer/-/merge_requests/120Fix end of line spacing2014-03-26T13:57:28-04:00Hans JohnsonFix end of line spacingThere were many files that have extra end-of-line spacings, and this makes long-term maintenance challenging.
In particular, many editors and git itself are (can be) configured to gobble up these end-of-line spaces. I was finding that ...There were many files that have extra end-of-line spacings, and this makes long-term maintenance challenging.
In particular, many editors and git itself are (can be) configured to gobble up these end-of-line spaces. I was finding that patch sets were often littered with these end-of-line space changes in addition to the actual changes in the patch.
This makes a quick sweep through the code removing those spurrious end of line changes.
https://gitlab.kitware.com/sjh26/Slicer/-/merge_requests/119COMP: Error due to imporoper linkage specification2014-03-26T11:49:40-04:00Hans JohnsonCOMP: Error due to imporoper linkage specificationinline functions are required to be declared and defined
in the same scope. The inline specifier changed the linkage
signature an prevented this from compiling.
Undefined symbols for architecture x86_64:
"vtkMRMLSliceNode::GetNumberO...inline functions are required to be declared and defined
in the same scope. The inline specifier changed the linkage
signature an prevented this from compiling.
Undefined symbols for architecture x86_64:
"vtkMRMLSliceNode::GetNumberOfThreeDViewIDs() const", referenced from:
PyvtkMRMLSliceNode_GetNumberOfThreeDViewIDs(_object_, _object_) in vtkMRMLSliceNodePython.cxx.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
https://gitlab.kitware.com/sjh26/Slicer/-/merge_requests/118ENH: Several fixes and improvements in transform handling2014-03-26T13:39:50-04:00Andras LassoENH: Several fixes and improvements in transform handlingMajor fixes:
- Added mechanism to prevent immediate invocation of TransformModified events (similarly to Modified events) to allow atomic changes of transforms and prevent multiple event invocations (fixes #3610, #3611).
- Fixed vtkITKBS...Major fixes:
- Added mechanism to prevent immediate invocation of TransformModified events (similarly to Modified events) to allow atomic changes of transforms and prevent multiple event invocations (fixes #3610, #3611).
- Fixed vtkITKBSplineTransform inverse computation (the bulk component was ignored in the inverse computation due to a shadow variable)
- Fixed DeepCopy of vtkITKBSplineTransform.cxx (InternalDeepCopy method had to be implemented)
- Use vtkTransform's ability to compute inverse transforms instead of keeping separate transforms for forward and inverse transforms (still kept the two member variables in the transform node base class to allow storing of forward and inverse transform if they are both computed, e.g., some Demons registration provides both the forward and inverse transforms as outputs).
- Fixed ReadWriteAsTransformToParent logic in the storage node class (as inverse warp transforms usually cannot be written, the flag should point to the forward transform class). For convenience, the flag is updated automatically when a To/FromParentTransform is set in the transform node.
- Fixed transform node copy: now a true deep copy is performed (earlier only the pointer of the transforms were copied, therefore changing a transform in a node changed the copied node, too)
- Removed vtkMRMLNonlinearTransformNode, as non-linear transforms are not special cases anymore: the base transform class can manage them the same way as linear transforms.
- Changed Get/SetMatrixTransformToParent and Get/SetMatrixTransformFromParent method to make it clear that it makes a copy of the input and output, so changing a matrix is only possible by using the Set... method (and not Get...()->DeepCopy(...)). Kept the old functions to prevent build errors, but they are deprecated and a warning is logged if they are used (as the behavior of the Get... function is changed from a shallow copy to a deep copy). This API change required changing of a lot of file in the Slicer core and extensions.
Minor fixes:
- Made vtkMRMLTransformNode non-abstract: this is the class that can handle arbitrarily complex composite transforms (e.g., grid transform hardened on a bspline transform).
- Fixed invalid NonLinearTransformScene.mrml scene: wrong storage node ref ID caused warnings in the tests
- Changed the Bspline-f-m.tfm test data to include larger bulk component to make errors more detectable
- Added tests for composite transforms (e.g., hardened combination of grid and bspline transform)
- Split the transform node's huge read/write methods to separate smaller methods (one for each transform type)
- Added the option of loading a .mha file as a grid transform
Extensions updated according to the API change: OpenIGTLinkIF, SlicerIGT, SlicerRT, and TransformVisualizer. See details at:
https://github.com/openigtlink/OpenIGTLinkIF/pull/25
https://github.com/SlicerIGT/FiducialRegistrationWizard/pull/14
https://github.com/SlicerIGT/BreachWarning/pull/1
https://github.com/SlicerIGT/PivotCalibration/pull/13
https://github.com/SlicerIGT/TransformFusion/pull/2
https://www.assembla.com/spaces/slicerrt/tickets/563
Tests performed:
• All automatic tests passed (except those that are known to fail in the nightly builds)
• Load MRBrainTumor1 & MRBrainTumor2 sample
• Create model of MRBrainTumor2, threshold=50
• Linear registration with BRAINS (fixed: MRBrainTumor1 & moving: MRBrainTumor2)
• VERIFY: the resampled output image should look the same as the dynamically transformed moving volume, checked on several slices
• Save the transform as tfm from file, load the transform from file, apply the transform to the moving image
• VERIFY: the resampled output image should look the same as the dynamically transformed moving volume
• Apply transform to the model
• VERIFY: model is deformed in the 3D view, aligned with the volume slices
• Harden transform to the model
• VERIFY: model in the 3D view doesn’t change, model slice intersections are aligned with the volume
• Harden the transform on the volume
• VERIFY: the image doesn’t change too much
• BSpline registration with BRAINS (fixed: MRBrainTumor1 & moving: MRBrainTumor2)
• VERIFY: the resampled output image should look the same as the dynamically transformed moving volume
• Save the transform as tfm from file, load the transform from file, apply the transform to the moving image
• VERIFY: the resampled output image should look the same as the dynamically transformed moving volume
• Apply transform to the model
• VERIFY: model is deformed in the 3D view, aligned with the volume slices
• Harden transform to the model
• VERIFY: model in the 3D view doesn’t change, model slice intersections are aligned with the volume
• Insert linear transform between bspline and volume, move sliders
• VERIFY: volume deforms as it travels through the BSpline region
• Harden the transform on the volume
• VERIFY: the image doesn’t change too much
• Create a two markup list (each having 15 points), all but 3 in the same position
• Landwarp registration with Plastimatch with the markup lists, save the displacement field to file
• Load the displacement field
• VERIFY: the resampled output image should look the same as the dynamically transformed moving volume
• Apply the displacement field to the moving fiducials
• VERIFY: all the fiducials are now in the same position
• Harden the transform on the fiducials
• VERIFY: the fiducials don’t move
• Apply transform to the model
• VERIFY: model is deformed in the 3D view, aligned with the volume slices
• Harden transform to the model
• VERIFY: model in the 3D view doesn’t change, model slice intersections are aligned with the volume
• Harden the transform on the volume
• VERIFY: the image doesn’t change too much
• Load MRI head, create new linear transform, apply to the volume, move the sliders
• VERIFY: the volume moves in the slice viewer, the numbers change in the matrix
• Click Invert, Identity
• VERIFY: volume jumps to other side, to the center
• Connect to an OpenIGTLink server, apply a transform to a volume
• VERIFY: transform matrix values updated in transforms module, volume moves
https://gitlab.kitware.com/sjh26/Slicer/-/merge_requests/117ENH: Update SimpleITK 0.8.0 release2014-08-13T15:49:15-04:00Sam HorvathENH: Update SimpleITK 0.8.0 release*Created by: blowekamp*
The manual download of distribute has been removed. The new
ez_setup.py file for fulfilling the setuptools requirement for
SimpleITK's setup.py file not can utilize PowerShell,curl and wget to
download the requir...*Created by: blowekamp*
The manual download of distribute has been removed. The new
ez_setup.py file for fulfilling the setuptools requirement for
SimpleITK's setup.py file not can utilize PowerShell,curl and wget to
download the required setuptools package of https.
https://gitlab.kitware.com/sjh26/Slicer/-/merge_requests/116ENH: Added QIICR logo to the resources2014-03-17T10:50:35-04:00Sam HorvathENH: Added QIICR logo to the resources*Created by: mehrtash*
*Created by: mehrtash*
https://gitlab.kitware.com/sjh26/Slicer/-/merge_requests/115BUG: Enable numeric sorting in LabelStatistics table2014-03-13T17:13:40-04:00Sam HorvathBUG: Enable numeric sorting in LabelStatistics table*Created by: blowekamp*
Data is added as float in a QtVariant with Qt::DisplayRole, in stead of text. The
enable the columns to be numerically sorted.
*Created by: blowekamp*
Data is added as float in a QtVariant with Qt::DisplayRole, in stead of text. The
enable the columns to be numerically sorted.
https://gitlab.kitware.com/sjh26/Slicer/-/merge_requests/114ENH: 1. A basic mode added with auto-examine (only scalar plugin)2014-08-13T15:49:24-04:00Sam HorvathENH: 1. A basic mode added with auto-examine (only scalar plugin)*Created by: mehrtash*
1. A basic mode added with auto-examine (only scalar plugin).
1. Advanced option added (using other plugins).
2. Tables orientation is not dynamic. Default is vertical, horizontal can be toggled by a checkbo...*Created by: mehrtash*
1. A basic mode added with auto-examine (only scalar plugin).
1. Advanced option added (using other plugins).
2. Tables orientation is not dynamic. Default is vertical, horizontal can be toggled by a checkbox.
3. tables are now expandable.
STYLE: changed the metadata viewer name
https://gitlab.kitware.com/sjh26/Slicer/-/merge_requests/113BUG: Test data was missing since Slicer4 (test was still pointing where ...2014-03-26T16:34:53-04:00Francois BudinBUG: Test data was missing since Slicer4 (test was still pointing where ......data was in Slicer3)
See bug report:
http://na-mic.org/Mantis/view.php?id=3341
The test that was not working does the following:
It runs ResampleDTIVolume and the result of this operation does not matter.
What is interesting is that......data was in Slicer3)
See bug report:
http://na-mic.org/Mantis/view.php?id=3341
The test that was not working does the following:
It runs ResampleDTIVolume and the result of this operation does not matter.
What is interesting is that the test makes sure that extending itkTestMainExtend
ed.h to work with DTI did not break the normal behavior of that file and that it
still works with scalar images too.
Therefore, it compares a scalar image with itself and verifies that the test
passes successfully
https://github.com/fbudin69500/Slicer/compare/Slicer:72e3fcc20bbb9194e66c521b51d1aad0e1f4aeab...fbudin69500:af35addc10af3733dc0b9c74ffcdeaa56646b11d