I use the script slicer.util.arrayFromVolume(volumeNode) get an array.
Then I use the script slicer.util.addVolumeFromArray(array), the volume’s shape is changed as is shown in the picture.
Why? How can I get the original volume from the array.
I use the script slicer.util.arrayFromVolume(volumeNode) get an array.
Then I use the script slicer.util.addVolumeFromArray(array), the volume’s shape is changed as is shown in the picture.
Why? How can I get the original volume from the array.
You can specify the ijkToRAS transform from the source volume, something like this:
ijkToRAS = vtk.vtkMatrix4x4()
volumeNode.GetIJKToRASMatrix(ijkToRAS)
segArray = numpy.stack(segmentationArrays)
segNode = slicer.util.addVolumeFromArray(segArray, ijkToRAS=ijkToRAS, name="Segmentation")