How can I export vtkImageSlice to .obj file

I’ve create a class that import/export .obj files to/from VTK object.

import vtk

DATA_DIR = r"C:\Users\MyUser"

class MyRenderer:
    def __init__(self):
        pass

    def import_object(self, obj_name):
        importer = vtk.vtkOBJImporter()
        importer.SetFileName(DATA_DIR + r"\{}.obj".format(obj_name))
        importer.SetFileNameMTL(DATA_DIR + r"\{}.mtl".format(obj_name))
        importer.Read()
        self.show(importer.GetRenderWindow())

    def export_object(self, obj_name, render_window):
        exporter = vtk.vtkOBJExporter()
        exporter.SetRenderWindow(render_window)
        exporter.SetFilePrefix(DATA_DIR + r"\{}".format(obj_name))
        exporter.Write()

    def show(self, render_window, actors: list = None):
        renderer = vtk.vtkRenderer()
        if actors:
            for actor in actors:
                renderer.AddActor(actor)
            renderer.SetBackground(0, 0, 0)
            render_window.AddRenderer(renderer)
        render_window_interactor = vtk.vtkRenderWindowInteractor()
        render_window_interactor.SetRenderWindow(render_window)
        renderer.ResetCamera()
        render_window.Render()
        render_window_interactor.Start()

In order to test the class I’ve created a simple sphere object, showed it, export it to an .obj file, and after that I imported the created .obj file and showed it.

def create_sphere_object():
    sphere = vtk.vtkSphereSource()
    sphere.SetCenter(0, 0, 0)
    sphere.SetRadius(20)

    # Create a mapper
    selection_sphere_mapper = vtk.vtkPolyDataMapper()
    selection_sphere_mapper.SetInputConnection(sphere.GetOutputPort())

    # Create an actor
    selection_sphere_actor = vtk.vtkActor()
    selection_sphere_actor.SetMapper(selection_sphere_mapper)
    selection_sphere_actor.GetProperty().SetColor(50, 20, 80)  # (R,G,B)
    selection_sphere_actor.GetProperty().SetOpacity(80)
    return selection_sphere_actor

obj_name = "testObj"
render = MyRenderer()
actor = create_sphere_object()
render_window = vtk.vtkRenderWindow()
render.show(render_window, [actor])
render.export_object(obj_name, render_window)
render.import_object(obj_name)

The above test passed, and a .obj file was created and loaded successfully.

My end-goal is to export imageSlice created by vtk.vtkImageSlice() insted of vtk.vtkActor(), but I can’t do it using the current API, even though I can show such imageSlice object using this API.

What do I need to change in the API in order to be able to save imageSlice as .obj file? Is it even possible?

see Export vtkImageSlice to .obj file - #2 by Sebastien_Jourdain