我有2个矩阵:
#for example
rotation = matrix([[ 0.61782155, 0.78631834, 0. ],
[ 0.78631834, -0.61782155, 0. ],
[ 0. , 0. , -1. ]])
translation = matrix([[-0.33657291],
[ 1.04497454],
[ 0. ]])
vtkinputpath = "/hello/world/vtkfile.vtk"
vtkoutputpath = "/hello/world/vtkrotatedfile.vtk"
interpolation = "linear"
我有一个包含3D图像的vtk文件,我想在Python中创建一个函数来旋转/平移它并进行插值。
import vtk
def rotate(vtkinputpath, vtkoutputpath, rotation, translation, interpolation):
...
我正在尝试从transformJ插件源代码中汲取灵感(请参见此处了解其工作原理)
我想使用vtk.vtkTransform,但我并不真正理解它的工作原理:这些示例与我想要做的不太接近。这就是我用它做的事情:
reader = vtk.vtkXMLImageDataReader()
reader.SetFileName(vtkinputpath)
reader.Update()
transform = reader.vtkTransform()
transform.RotateX(rotation[0])
transform.RotateY(rotation[1])
transform.RotateZ(rotation[2])
transform.Translate(translation[0], translation[1], translation[2])
#and I don't know how I can choose the parameter of the interpolation
但那样行不通... 我在这里看到了函数RotateWXYZ()的存在:
# create a transform that rotates the cone
transform = vtk.vtkTransform()
transform.RotateWXYZ(45,0,1,0)
transformFilter=vtk.vtkTransformPolyDataFilter()
transformFilter.SetTransform(transform)
transformFilter.SetInputConnection(source.GetOutputPort())
transformFilter.Update()
但我不明白这些代码的作用。 我的主要问题是找不到Python下的vtk文档...
你能否向我推荐一个关于Python中vtk的文档网站?或者至少可以解释一下vtktransform(rotateWXYZ())是如何工作的吗? 拜托了,我完全迷失了,什么都不起作用。