前言
Scriptedcli类型是python语言编写
html文件作为界面
编写界面
关于如何编写界面可以参考Slicer编写界面规则
再选择图中的那个紫色XML Schema
编写处理
在testScriptedcli.py
#!/usr/bin/env python-real
import os
import sys
def main(input, sigma, output):
print("=================")
print(input)
print(sigma)
print(output)
import SimpleITK as sitk
reader = sitk.ImageFileReader()
#input等于文件名字
#通过文件的名字来读取文件
reader.SetFileName(input)
image = reader.Execute()
pixelID = image.GetPixelID()
gaussian = sitk.SmoothingRecursiveGaussianImageFilter()
gaussian.SetSigma(sigma)
image = gaussian.Execute(image)
caster = sitk.CastImageFilter()
caster.SetOutputPixelType(pixelID)
image = caster.Execute(image)
writer = sitk.ImageFileWriter()
writer.SetFileName (output)
writer.Execute (image)
if __name__ == "__main__":
if len (sys.argv) < 4:
print("Usage: testScriptedcli <input> <sigma> <output>")
sys.exit (1)
#sys.argv[1]对应的是<index>0</index>那个变量
#sys.argv[2]对应的是<index>1</index>那个变量
#sys.argv[3]对应的是<index>2</index>那个变量
#在scriptedcli中,界面向算法传递变量的方法就是上面那样的
main(sys.argv[1], float(sys.argv[2]), sys.argv[3])
实验
可以看到print的结果是
=================
#input文件的名字
/tmp/Slicer-jack/HDIG_vtkMRMLScalarVolumeNodeB.nrrd
#sigma的值
1.7
#output文件的名字
/tmp/Slicer-jack/HDIG_vtkMRMLScalarVolumeNodeC.nrrd