私は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で関数を作成したいです補間。私はthe transformJ plugin sourcesからインスピレーションを取るしようとしている
import vtk
def rotate(vtkinputpath, vtkoutputpath, rotation, translation, interpolation):
...
(here to understand how it worksを参照)
は私がvtk.vtkTransformを使用していたが、私は実際にそれがどのように動作するか理解していない:これらexamplesは何の十分近くありません私はやってみたいです。 )私は機能RotateWXYZ(というhereを見た...
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
しかし、それは動作しません 存在:これは私がそれをやったことある
# 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のドキュメントのWebサイトに助言することができます...私は、PythonのためのVTKのドキュメントを見つけることができないということでしょうか?または、少なくともvtktransform(rotateWXYZ())がどのように機能するかを私に説明できますか? 私は完全に失われています、何も動作しません。
あなたのリンクの説明を読んだ、ありがとう。しかし、私はSetMatrix関数をよく理解しているかどうかはわかりません...回転行列を角度とベクトル(回転の軸である<=>)に変換しようとしています。私はvtkTransform(http://www.vtk.org/doc/nightly/html/vtkTransform_8h_source.html)のソースを理解しようとしましたが、私はそれが何をしているのか分かりません...だから、ありがとう私の試みがうまくいかない場合、私の質問を更新します。 – EaudeRoche
答えを編集して、マトリックスに正しい値を表示しました。その行列を[SetMatrix](http://www.vtk.org/doc/nightly/html/classvtkTransform.html#ad58b847446d791391e32441b98eff151)を使って変換に設定すると、あなたの例で与えられた回転と平行移動を適用する変換が得られます。その後、vtkImageResliceを使って変換を画像に適用することができます。私はこれがもう少しあなたに役立つことを願っています。 –