# How can I export vtkImageSlice to .obj file

**URL:** https://discourse.vtk.org/t/how-can-i-export-vtkimageslice-to-obj-file/5960
**Category:** Support
**Created:** [June 8, 2021, 10:48am UTC](https://discourse.vtk.org/t/how-can-i-export-vtkimageslice-to-obj-file/5960 "2021-06-08T10:48:36Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![Uriel\_Dardik](https://discourse.vtk.org/user_avatar/discourse.vtk.org/uriel_dardik/32/3538_2.png) [@Uriel\_Dardik](https://discourse.vtk.org/u/Uriel_Dardik)
#### Post date: [June 8, 2021, 10:48am UTC](https://discourse.vtk.org/t/how-can-i-export-vtkimageslice-to-obj-file/5960/1 "2021-06-08T10:48:36Z")

</div>

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

```auto
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.

```auto
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?

---

<div class="post-metadata">

### Author: ![Sebastien\_Jourdain](https://discourse.vtk.org/user_avatar/discourse.vtk.org/sebastien_jourdain/32/100_2.png) [@Sebastien\_Jourdain](https://discourse.vtk.org/u/Sebastien_Jourdain)
#### Post date: [June 8, 2021, 1:50pm UTC](https://discourse.vtk.org/t/how-can-i-export-vtkimageslice-to-obj-file/5960/2 "2021-06-08T13:50:34Z")

</div>

see [Export vtkImageSlice to .obj file - #2 by Sebastien\_Jourdain](https://discourse.vtk.org/t/export-vtkimageslice-to-obj-file/5959/2)
