如何在 python/vtk 中显示 .obj 文件?

How to show an .obj file in python/vtk?

晚上好,

我想使用 vtk 库在 python 中可视化一个 .obj 文件,但是当我 运行 代码时出现以下错误。知道文件存在。 任何帮助将不胜感激。

ERROR: In /build/vtk-NWL3SN/vtk-5.10.1+dfsg/IO/vtkOBJReader.cxx, line 126 vtkOBJReader (0xe16650): File /home/nahla/Documents/cat1_un4 not found

ERROR: In /build/vtk-NWL3SN/vtk-5.10.1+dfsg/Filtering/vtkExecutive.cxx, line 756 vtkStreamingDemandDrivenPipeline (0xeb2bc0): Algorithm vtkOBJReader(0xe16650) returned failure for request: vtkInformation (0xeac270) Debug: Off Modified Time: 87 Reference Count: 1 Registered Events: (none) Request: REQUEST_DATA FROM_OUTPUT_PORT: 0 ALGORITHM_AFTER_FORWARD: 1 FORWARD_DIRECTION: 0

代码如下:

#!/usr/bin/env python

import vtk

ColorBackground = [0.0, 0.0, 0.0]

FirstobjPath = r"/home/nahla/Documents/cat1_un4"

reader = vtk.vtkOBJReader()

reader.SetFileName(FirstobjPath)

reader.Update()


mapper = vtk.vtkPolyDataMapper()

if vtk.VTK_MAJOR_VERSION <= 5:

     mapper.SetInput(reader.GetOutput())

else:

     mapper.SetInputConnection(reader.GetOutputPort())

actor = vtk.vtkActor()

actor.SetMapper(mapper)

# Create a rendering window and renderer

ren = vtk.vtkRenderer()

ren.SetBackground(ColorBackground)

renWin = vtk.vtkRenderWindow()

renWin.AddRenderer(ren)

# Create a renderwindowinteractor

iren = vtk.vtkRenderWindowInteractor()

iren.SetRenderWindow(renWin)

# Assign actor to the renderer

ren.AddActor(actor)

# Enable user interface interactor

iren.Initialize()

renWin.Render()

iren.Start()

我明白了,我忘了在文件名的末尾加上“.obj”。应该是:

"/home/nahla/Documents/cat1_un4.obj"