{
  "id": 566633,
  "title": "Python Code for Visualizing Tomograms",
  "url": "/competitions/byu-locating-bacterial-flagellar-motors-2025/discussion/566633",
  "author_name": "",
  "post_date": "2025-03-06T10:08:31.151295200Z",
  "votes": 21,
  "comment_count": 2,
  "views": 0,
  "content": "<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F20686390%2F7086b312e9d0bd90abf8e3b84801c5fe%2FScreenshot%202025-03-06%20at%205.05.01AM.png?generation=1741255605867864&amp;alt=media\" alt=\"\"></p>\n<pre><code> os\n numpy  np\n imageio.v2  imageio\n vtkmodules.  vtk\n vtkmodules.util.numpy_support  numpy_to_vtk\n\nfolder_path = \n\nslice_files = ([file  file  os.listdir(folder_path)  file.endswith()])\nslices = [imageio.imread(os.path.join(folder_path, file))  file  slice_files]\n\nvolume = np.stack(slices, axis=)\nvolume = ( - (volume - np.(volume)) / (np.(volume) - np.(volume))) * \nvolume = volume.astype(np.uint8)\n\nvtk_data = numpy_to_vtk(volume.ravel(), deep=, array_type=vtk.VTK_UNSIGNED_CHAR)\nimage_data = vtk.vtkImageData()\nimage_data.SetDimensions(volume.shape[::-])\nimage_data.GetPointData().SetScalars(vtk_data)\n\nmapper = vtk.vtkSmartVolumeMapper()\nmapper.SetInputData(image_data)\n\nvolume_property = vtk.vtkVolumeProperty()\ncomposite_function = vtk.vtkPiecewiseFunction()\ncomposite_function.AddPoint(, )\ncomposite_function.AddPoint(, )\nvolume_property.SetScalarOpacity(composite_function)\n\ncolor = vtk.vtkColorTransferFunction()\ncolor.AddRGBPoint(, , , )\ncolor.AddRGBPoint(, , , )\nvolume_property.SetColor(color)\n\nvolume_actor = vtk.vtkVolume()\nvolume_actor.SetMapper(mapper)\nvolume_actor.SetProperty(volume_property)\n\nrenderer = vtk.vtkRenderer()\nrenderer.AddVolume(volume_actor)\nrenderer.SetBackground(, , )\n\nrender_window = vtk.vtkRenderWindow()\nrender_window.AddRenderer(renderer)\nrender_window.SetSize(, )\n\ninteractor = vtk.vtkRenderWindowInteractor()\ninteractor.SetRenderWindow(render_window)\n\ninteractor_style = vtk.vtkInteractorStyleTrackballCamera()\ninteractor.SetInteractorStyle(interactor_style)\n\nrender_window.Render()\ninteractor.Start()\n</code></pre>",
  "messages": [
    {
      "id": "3142329",
      "postDate": "03/06/2025 10:08:31",
      "content": "<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F20686390%2F7086b312e9d0bd90abf8e3b84801c5fe%2FScreenshot%202025-03-06%20at%205.05.01AM.png?generation=1741255605867864&amp;alt=media\" alt=\"\"></p>\n<pre><code> os\n numpy  np\n imageio.v2  imageio\n vtkmodules.  vtk\n vtkmodules.util.numpy_support  numpy_to_vtk\n\nfolder_path = \n\nslice_files = ([file  file  os.listdir(folder_path)  file.endswith()])\nslices = [imageio.imread(os.path.join(folder_path, file))  file  slice_files]\n\nvolume = np.stack(slices, axis=)\nvolume = ( - (volume - np.(volume)) / (np.(volume) - np.(volume))) * \nvolume = volume.astype(np.uint8)\n\nvtk_data = numpy_to_vtk(volume.ravel(), deep=, array_type=vtk.VTK_UNSIGNED_CHAR)\nimage_data = vtk.vtkImageData()\nimage_data.SetDimensions(volume.shape[::-])\nimage_data.GetPointData().SetScalars(vtk_data)\n\nmapper = vtk.vtkSmartVolumeMapper()\nmapper.SetInputData(image_data)\n\nvolume_property = vtk.vtkVolumeProperty()\ncomposite_function = vtk.vtkPiecewiseFunction()\ncomposite_function.AddPoint(, )\ncomposite_function.AddPoint(, )\nvolume_property.SetScalarOpacity(composite_function)\n\ncolor = vtk.vtkColorTransferFunction()\ncolor.AddRGBPoint(, , , )\ncolor.AddRGBPoint(, , , )\nvolume_property.SetColor(color)\n\nvolume_actor = vtk.vtkVolume()\nvolume_actor.SetMapper(mapper)\nvolume_actor.SetProperty(volume_property)\n\nrenderer = vtk.vtkRenderer()\nrenderer.AddVolume(volume_actor)\nrenderer.SetBackground(, , )\n\nrender_window = vtk.vtkRenderWindow()\nrender_window.AddRenderer(renderer)\nrender_window.SetSize(, )\n\ninteractor = vtk.vtkRenderWindowInteractor()\ninteractor.SetRenderWindow(render_window)\n\ninteractor_style = vtk.vtkInteractorStyleTrackballCamera()\ninteractor.SetInteractorStyle(interactor_style)\n\nrender_window.Render()\ninteractor.Start()\n</code></pre>",
      "rawMarkdown": "![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F20686390%2F7086b312e9d0bd90abf8e3b84801c5fe%2FScreenshot%202025-03-06%20at%205.05.01AM.png?generation=1741255605867864&alt=media)\n\n```python\nimport os\nimport numpy as np\nimport imageio.v2 as imageio\nimport vtkmodules.all as vtk\nfrom vtkmodules.util.numpy_support import numpy_to_vtk\n\nfolder_path = \"data/train/tomo_0c3a99\"\n\nslice_files = sorted([file for file in os.listdir(folder_path) if file.endswith('.jpg')])\nslices = [imageio.imread(os.path.join(folder_path, file)) for file in slice_files]\n\nvolume = np.stack(slices, axis=0)\nvolume = (1.0 - (volume - np.min(volume)) / (np.max(volume) - np.min(volume))) * 255\nvolume = volume.astype(np.uint8)\n\nvtk_data = numpy_to_vtk(volume.ravel(), deep=True, array_type=vtk.VTK_UNSIGNED_CHAR)\nimage_data = vtk.vtkImageData()\nimage_data.SetDimensions(volume.shape[::-1])\nimage_data.GetPointData().SetScalars(vtk_data)\n\nmapper = vtk.vtkSmartVolumeMapper()\nmapper.SetInputData(image_data)\n\nvolume_property = vtk.vtkVolumeProperty()\ncomposite_function = vtk.vtkPiecewiseFunction()\ncomposite_function.AddPoint(0, 0.0)\ncomposite_function.AddPoint(255, 0.01)\nvolume_property.SetScalarOpacity(composite_function)\n\ncolor = vtk.vtkColorTransferFunction()\ncolor.AddRGBPoint(0, 0.0, 0.0, 0.0)\ncolor.AddRGBPoint(255, 1.0, 1.0, 1.0)\nvolume_property.SetColor(color)\n\nvolume_actor = vtk.vtkVolume()\nvolume_actor.SetMapper(mapper)\nvolume_actor.SetProperty(volume_property)\n\nrenderer = vtk.vtkRenderer()\nrenderer.AddVolume(volume_actor)\nrenderer.SetBackground(0, 0, 0)\n\nrender_window = vtk.vtkRenderWindow()\nrender_window.AddRenderer(renderer)\nrender_window.SetSize(1280, 720)\n\ninteractor = vtk.vtkRenderWindowInteractor()\ninteractor.SetRenderWindow(render_window)\n\ninteractor_style = vtk.vtkInteractorStyleTrackballCamera()\ninteractor.SetInteractorStyle(interactor_style)\n\nrender_window.Render()\ninteractor.Start()\n```",
      "votes": null
    },
    {
      "id": "3142343",
      "postDate": "03/06/2025 10:21:56",
      "content": "<p>Its a great resource. Also how is it similar to Cryo-et tomograms?</p>",
      "rawMarkdown": "Its a great resource. Also how is it similar to Cryo-et tomograms?",
      "votes": null
    },
    {
      "id": "3160522",
      "postDate": "03/26/2025 21:59:48",
      "content": "<p>This is useful.</p>",
      "rawMarkdown": "This is useful.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 3142343,
      "author_name": "dhevmugunddhana333",
      "author_url": "",
      "post_date": "03/06/2025 10:21:56",
      "content": "<p>Its a great resource. Also how is it similar to Cryo-et tomograms?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 3160522,
      "author_name": "",
      "author_url": "",
      "post_date": "03/26/2025 21:59:48",
      "content": "<p>This is useful.</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "3142329": "![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F20686390%2F7086b312e9d0bd90abf8e3b84801c5fe%2FScreenshot%202025-03-06%20at%205.05.01AM.png?generation=1741255605867864&alt=media)\n\n```python\nimport os\nimport numpy as np\nimport imageio.v2 as imageio\nimport vtkmodules.all as vtk\nfrom vtkmodules.util.numpy_support import numpy_to_vtk\n\nfolder_path = \"data/train/tomo_0c3a99\"\n\nslice_files = sorted([file for file in os.listdir(folder_path) if file.endswith('.jpg')])\nslices = [imageio.imread(os.path.join(folder_path, file)) for file in slice_files]\n\nvolume = np.stack(slices, axis=0)\nvolume = (1.0 - (volume - np.min(volume)) / (np.max(volume) - np.min(volume))) * 255\nvolume = volume.astype(np.uint8)\n\nvtk_data = numpy_to_vtk(volume.ravel(), deep=True, array_type=vtk.VTK_UNSIGNED_CHAR)\nimage_data = vtk.vtkImageData()\nimage_data.SetDimensions(volume.shape[::-1])\nimage_data.GetPointData().SetScalars(vtk_data)\n\nmapper = vtk.vtkSmartVolumeMapper()\nmapper.SetInputData(image_data)\n\nvolume_property = vtk.vtkVolumeProperty()\ncomposite_function = vtk.vtkPiecewiseFunction()\ncomposite_function.AddPoint(0, 0.0)\ncomposite_function.AddPoint(255, 0.01)\nvolume_property.SetScalarOpacity(composite_function)\n\ncolor = vtk.vtkColorTransferFunction()\ncolor.AddRGBPoint(0, 0.0, 0.0, 0.0)\ncolor.AddRGBPoint(255, 1.0, 1.0, 1.0)\nvolume_property.SetColor(color)\n\nvolume_actor = vtk.vtkVolume()\nvolume_actor.SetMapper(mapper)\nvolume_actor.SetProperty(volume_property)\n\nrenderer = vtk.vtkRenderer()\nrenderer.AddVolume(volume_actor)\nrenderer.SetBackground(0, 0, 0)\n\nrender_window = vtk.vtkRenderWindow()\nrender_window.AddRenderer(renderer)\nrender_window.SetSize(1280, 720)\n\ninteractor = vtk.vtkRenderWindowInteractor()\ninteractor.SetRenderWindow(render_window)\n\ninteractor_style = vtk.vtkInteractorStyleTrackballCamera()\ninteractor.SetInteractorStyle(interactor_style)\n\nrender_window.Render()\ninteractor.Start()\n```",
    "3142343": "Its a great resource. Also how is it similar to Cryo-et tomograms?",
    "3160522": "This is useful."
  },
  "source": "meta"
}