def BuildUpwindGradientBasedFeatureImage(self): cast = vtk.vtkImageCast() cast.SetInputData(self.Image) cast.SetOutputScalarTypeToFloat() cast.Update() gradientMagnitude = vtkvmtk.vtkvmtkUpwindGradientMagnitudeImageFilter() gradientMagnitude.SetInputConnection(cast.GetOutputPort()) gradientMagnitude.SetUpwindFactor(self.UpwindFactor) gradientMagnitude.Update() featureImage = None if self.SigmoidRemapping==1: scalarRange = gradientMagnitude.GetOutput().GetPointData().GetScalars().GetRange() inputMinimum = scalarRange[0] inputMaximum = scalarRange[1] alpha = - (inputMaximum - inputMinimum) / 6.0 beta = (inputMaximum + inputMinimum) / 2.0 sigmoid = vtkvmtk.vtkvmtkSigmoidImageFilter() sigmoid.SetInputConnection(gradientMagnitude.GetOutputPort()) sigmoid.SetAlpha(alpha) sigmoid.SetBeta(beta) sigmoid.SetOutputMinimum(0.0) sigmoid.SetOutputMaximum(1.0) sigmoid.Update() featureImage = sigmoid.GetOutput() else: boundedReciprocal = vtkvmtk.vtkvmtkBoundedReciprocalImageFilter() boundedReciprocal.SetInputConnection(gradientMagnitude.GetOutputPort()) boundedReciprocal.Update() featureImage = boundedReciprocal.GetOutput() self.FeatureImage = vtk.vtkImageData() self.FeatureImage.DeepCopy(featureImage)
def BuildGradientBasedFeatureImage(self): cast = vtk.vtkImageCast() cast.SetInputData(self.Image) cast.SetOutputScalarTypeToFloat() cast.Update() if (self.DerivativeSigma > 0.0): gradientMagnitude = vtkvmtk.vtkvmtkGradientMagnitudeRecursiveGaussianImageFilter( ) gradientMagnitude.SetInputConnection(cast.GetOutputPort()) gradientMagnitude.SetSigma(self.DerivativeSigma) gradientMagnitude.SetNormalizeAcrossScale(0) gradientMagnitude.Update() else: gradientMagnitude = vtkvmtk.vtkvmtkGradientMagnitudeImageFilter() gradientMagnitude.SetInputConnection(cast.GetOutputPort()) gradientMagnitude.Update() featureImage = None if self.SigmoidRemapping == 1: scalarRange = gradientMagnitude.GetOutput().GetPointData( ).GetScalars().GetRange() inputMinimum = scalarRange[0] inputMaximum = scalarRange[1] alpha = -(inputMaximum - inputMinimum) / 6.0 beta = (inputMaximum + inputMinimum) / 2.0 sigmoid = vtkvmtk.vtkvmtkSigmoidImageFilter() sigmoid.SetInputConnection(gradientMagnitude.GetOutputPort()) sigmoid.SetAlpha(alpha) sigmoid.SetBeta(beta) sigmoid.SetOutputMinimum(0.0) sigmoid.SetOutputMaximum(1.0) sigmoid.Update() featureImage = sigmoid.GetOutput() else: boundedReciprocal = vtkvmtk.vtkvmtkBoundedReciprocalImageFilter() boundedReciprocal.SetInputData(gradientMagnitude.GetOutput()) boundedReciprocal.Update() featureImage = boundedReciprocal.GetOutput() self.FeatureImage = vtk.vtkImageData() self.FeatureImage.DeepCopy(featureImage)
def BuildGradientBasedFeatureImage(self): cast = vtk.vtkImageCast() cast.SetInput(self.Image) cast.SetOutputScalarTypeToFloat() cast.Update() if (self.DerivativeSigma > 0.0): gradientMagnitude = vtkvmtk.vtkvmtkGradientMagnitudeRecursiveGaussianImageFilter() gradientMagnitude.SetInput(cast.GetOutput()) gradientMagnitude.SetSigma(self.DerivativeSigma) gradientMagnitude.SetNormalizeAcrossScale(0) gradientMagnitude.Update() else: gradientMagnitude = vtkvmtk.vtkvmtkGradientMagnitudeImageFilter() gradientMagnitude.SetInput(cast.GetOutput()) gradientMagnitude.Update() featureImage = None if self.SigmoidRemapping==1: scalarRange = gradientMagnitude.GetOutput().GetPointData().GetScalars().GetRange() inputMinimum = scalarRange[0] inputMaximum = scalarRange[1] alpha = - (inputMaximum - inputMinimum) / 6.0 beta = (inputMaximum + inputMinimum) / 2.0 sigmoid = vtkvmtk.vtkvmtkSigmoidImageFilter() sigmoid.SetInput(gradientMagnitude.GetOutput()) sigmoid.SetAlpha(alpha) sigmoid.SetBeta(beta) sigmoid.SetOutputMinimum(0.0) sigmoid.SetOutputMaximum(1.0) sigmoid.Update() featureImage = sigmoid.GetOutput() else: boundedReciprocal = vtkvmtk.vtkvmtkBoundedReciprocalImageFilter() boundedReciprocal.SetInput(gradientMagnitude.GetOutput()) boundedReciprocal.Update() featureImage = boundedReciprocal.GetOutput() self.FeatureImage = vtk.vtkImageData() self.FeatureImage.DeepCopy(featureImage) self.FeatureImage.Update()