Package VMTKVesselEnhancement :: Module SlicerVMTKVesselEnhancementLogic
[hide private]
[frames] | no frames]

Source Code for Module VMTKVesselEnhancement.SlicerVMTKVesselEnhancementLogic

  1  from Slicer import slicer 
  2   
  3   
4 -class SlicerVMTKVesselEnhancementLogic(object):
5
6 - def __init__(self,mainGUIClass):
7 8 self._helper = mainGUIClass
9
10 - def ApplyFrangiVesselness(self,inVolumeNode,outVolumeNode,sigmaMin,sigmaMax,numberOfSigmaSteps,alpha,beta,gamma):
11 12 self._helper.debug("Starting execution of Frangi...") 13 14 if not inVolumeNode or not outVolumeNode: 15 slicer.Application.ErrorMessage("No input volume or no output volume found. Aborting Frangi..\n") 16 return 17 else: 18 19 image = inVolumeNode.GetImageData() 20 21 v = slicer.vtkvmtkVesselnessMeasureImageFilter() 22 v.SetInput(image) 23 v.SetSigmaMin(sigmaMin) 24 v.SetSigmaMax(sigmaMax) 25 v.SetNumberOfSigmaSteps(numberOfSigmaSteps) 26 v.SetAlpha(alpha) 27 v.SetBeta(beta) 28 v.SetGamma(gamma) 29 v.Update() 30 31 matrix = slicer.vtkMatrix4x4() 32 inVolumeNode.GetIJKToRASMatrix(matrix) 33 34 outVolumeData = slicer.vtkImageData() 35 outVolumeData.DeepCopy(v.GetOutput()) 36 outVolumeData.Update() 37 38 outVolumeNode.SetAndObserveImageData(outVolumeData) 39 outVolumeNode.SetIJKToRASMatrix(matrix)
40
41 - def ApplySatoVesselness(self,inVolumeNode,outVolumeNode,sigmaMin,sigmaMax,numberOfSigmaSteps,alpha,alpha2):
42 43 self._helper.debug("Starting execution of Sato...") 44 45 if not inVolumeNode or not outVolumeNode: 46 slicer.Application.ErrorMessage("No input volume or no output volume found. Aborting Sato..\n") 47 return 48 else: 49 50 image = inVolumeNode.GetImageData() 51 52 v = slicer.vtkvmtkSatoVesselnessMeasureImageFilter() 53 v.SetInput(image) 54 v.SetSigmaMin(sigmaMin) 55 v.SetSigmaMax(sigmaMax) 56 v.SetNumberOfSigmaSteps(numberOfSigmaSteps) 57 v.SetAlpha1(alpha) 58 v.SetAlpha2(alpha2) 59 v.Update() 60 61 matrix = slicer.vtkMatrix4x4() 62 inVolumeNode.GetIJKToRASMatrix(matrix) 63 64 outVolumeData = slicer.vtkImageData() 65 outVolumeData.DeepCopy(v.GetOutput()) 66 outVolumeData.Update() 67 68 outVolumeNode.SetAndObserveImageData(outVolumeData) 69 outVolumeNode.SetIJKToRASMatrix(matrix)
70 71
72 - def ApplyVED(self,inVolumeNode,outVolumeNode,sigmaMin,sigmaMax,numberOfSigmaSteps,alpha,beta,gamma,c,timestep,epsilon,wstrength,sensitivity,numberOfIterations,numberOfDiffusionSubIterations):
73 74 self._helper.debug("Starting execution of VED...") 75 76 if not inVolumeNode or not outVolumeNode: 77 slicer.Application.ErrorMessage("No input volume or no output volume found. Aborting VED..\n") 78 return 79 else: 80 81 image = inVolumeNode.GetImageData() 82 83 v = slicer.vtkvmtkVesselEnhancingDiffusionImageFilter() 84 v.SetInput(image) 85 v.SetSigmaMin(sigmaMin) 86 v.SetSigmaMax(sigmaMax) 87 v.SetNumberOfSigmaSteps(numberOfSigmaSteps) 88 v.SetAlpha(alpha) 89 v.SetBeta(beta) 90 v.SetGamma(gamma) 91 v.SetC(c) 92 v.SetTimeStep(timestep) 93 v.SetEpsilon(epsilon) 94 v.SetWStrength(wstrength) 95 v.SetSensitivity(sensitivity) 96 v.SetNumberOfIterations(numberOfIterations) 97 v.SetNumberOfDiffusionSubIterations(numberOfDiffusionSubIterations) 98 v.Update() 99 100 matrix = slicer.vtkMatrix4x4() 101 inVolumeNode.GetIJKToRASMatrix(matrix) 102 103 outVolumeData = slicer.vtkImageData() 104 outVolumeData.DeepCopy(v.GetOutput()) 105 outVolumeData.Update() 106 107 outVolumeNode.SetAndObserveImageData(outVolumeData) 108 outVolumeNode.SetIJKToRASMatrix(matrix)
109