VTK:显示2D图像时,相机操作不起作用

2024-10-03 11:19:52 发布

您现在位置:Python中文网/ 问答频道 /正文

现在,我通过以下代码显示2D图像:

import vtk

img = vtk.vtkDICOMImageReader()
img.SetFileName('C:\\Users\\MLoong\\Desktop\\dicom_data\\Chang Cheng\\TOF\\IM_0174')
img.Update()

mapper = vtk.vtkImageMapper()
mapper.SetInputData(img.GetOutput())
actor = vtk.vtkActor2D()
actor.SetMapper(mapper)

ren = vtk.vtkRenderer()
ren.AddActor(actor)
ren.SetBackground(0.1, 0.2, 0.4)

renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren)
renWin.SetSize(400, 400)

iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)

renWin.Render()
# iren.Start()

print(ren.GetActiveCamera().GetPosition())

# ren.GetActiveCamera().SetPosition([0, 0, 0.5])   ############ change the camera position
# ren.ResetCameraClippingRange()
# ren.UpdateLightsGeometryToFollowCamera()
renWin.Render()
iren.Start()

我通过打印(ren.GetActiveCamera().GetPosition())打印相机位置,位置为[0,0,1]

结果是:

enter image description here

现在,我想通过以下方式更改相机位置:

...
print(ren.GetActiveCamera().GetPosition())
ren.GetActiveCamera().SetPosition([0, 0, 0.5])
ren.ResetCameraClippingRange()
ren.UpdateLightsGeometryToFollowCamera()
...

据我所知,相机是朝着物体移动的。因此,图像应该放大。但是,没有变化,结果是:

enter image description here


Tags: 图像imgrenderstartactorprintmappervtk