对于下面的类,我得到一个例外:
return probe.GetOutput().GetPointData().GetArray('ImageScalars')
SyntaxError: 'return' outside function
为什么Python在函数之外考虑“return”?是缩进问题吗?谢谢。你知道吗
def probeVolume(self,volumeNode,rulerNode):
# get ruler endpoints coordinates in RAS
p0ras = rulerNode.GetPolyData().GetPoint(0)+(1,)
p1ras = rulerNode.GetPolyData().GetPoint(1)+(1,)
# Convert RAS to IJK coordinates of the vtkImageData
ras2ijk = vtk.vtkMatrix4x4()
volumeNode.GetRASToIJKMatrix(ras2ijk)
p0ijk = [int(round(c)) for c in ras2ijk.MultiplyPoint(p0ras)[:3]]
p1ijk = [int(round(c)) for c in ras2ijk.MultiplyPoint(p1ras)[:3]]
# Create VTK line that will be used for sampling
line = vtk.vtkLineSource()
line.SetResolution(100)
line.SetPoint1(p0ijk[0],p0ijk[1],p0ijk[2])
line.SetPoint2(p1ijk[0],p1ijk[1],p1ijk[2])
# Create VTK probe filter and sample the image
probe = vtk.vtkProbeFilter()
probe.SetInputConnection(line.GetOutputPort())
probe.SetSourceData(volumeNode.GetImageData())
probe.Update()
# return VTK array
return probe.GetOutput().GetPointData().GetArray('ImageScalars')
问题是你的缩进不一致。Python依赖缩进来确定代码块。要解决这个问题,您需要将
probeVolume
函数中的所有代码缩进相同的数量。你知道吗函数的前两行与函数之间有4个空格
我不是100%确定这是否是问题所在,但请尝试将第3行和第4行缩进两个空格。示例-
这是一个缩进错误。函数的前两行是双缩进的。你知道吗
修正:
相关问题 更多 >
编程相关推荐