Skip to main content
Join the official Python Developers Survey 2018 and win valuable prizes: Start the survey!

Jupyter widgets to visualize images in 2D and 3D

Project description

License PyPI Build status https://mybinder.org/badge.svg

Interactive Jupyter widgets to visualize images in 2D and 3D.

itk-jupyter-widgets chest CT in JupyterLab

Key Features:

  • Exquisite volume rendering
  • Tri-plane volume slicing
  • Innovative, powerful opacity transfer function / window / level widget
  • Support for
    • NumPy Arrays
    • itk.Image
    • vtk.vtkImageData
    • Dask Arrays
    • ImageJ / Fiji / ImageJ2 images
  • Anisotropic voxel spacing supported
  • 3D and 2D image support
  • Combine with other ipywidgets to quickly create graphical interfaces to algorithms
itk-jupyter-widgets demo

These widgets are designed to support image analysis with the Insight Toolkit (ITK), but they also work with other spatial analysis tools in the scientific Python ecosystem.

These widgets are built on itk.js and vtk.js.

Installation

To install the widgets for the Jupyter Notebook:

pip install itkwidgets

For Jupyter Lab, additionally run:

jupyter labextension install @jupyter-widgets/jupyterlab-manager itk-jupyter-widgets

Usage

In Jupyter, import the view function:

from itkwidgets import view

Then, call the view function at the end of a cell, passing in the image to examine:

view(image)

For information on additional options, see the view function docstring:

view?

Advanced Usage

The itk-jupyter-widgets are based on ipywidgets. As a consequence, widgets traits can be queried, assigned, or observed with the viewer object returned by the view function. itk-jupyter-widgets can be combined with other ipywidgets to quickly explore algorithm parameters, create graphical interfaces, or create data visualization dashboards.

Mouse Controls

Left click + drag
Rotate
Right click + drag or shift + left click + drag
Pan
Mouse wheel or control + left click + drag or pinch
Zoom
Alt + left click + drag left-right
Change color transfer function window
Shift + left click + drag top-bottom
Change color transfer function level
Shift + alt + left click + drag top-bottom
Change primary Gaussian volume opacity transfer function magnitude

Keyboard Shortcuts

Keyboard shortcuts take effect when the mouse is positioned inside the viewer. All shortcuts are prefixed with Alt+. Corresponding keys for the Dvorak keyboard layout have the same effect.

Alt + 1
X-plane mode
Alt + 2
Y-plane mode
Alt + 3
Z-plane mode
Alt + 4
Volume rendering mode
Alt + q
Toggle user interface
Alt + w
Toggle region of interest (ROI) selection widget
Alt + e
Reset ROI
Alt + r
Reset camera
Alt + s
Toggle slicing planes in volume rendering mode
Alt + f
Toggle fullscreen

Troubleshooting

If you experience the notebook warning:

IOPub data rate exceeded.
The notebook server will temporarily stop sending output
to the client in order to avoid crashing it.
To change this limit, set the config variable
`--NotebookApp.iopub_data_rate_limit`.

Set the notebook configuration value:

jupyter notebook --NotebookApp.iopub_data_rate_limit=1e12

Hacking

Participation is welcome! For a development installation (requires Node.js):

git clone https://github.com/InsightSoftwareConsortium/itk-jupyter-widgets.git
cd itk-jupyter-widgets
python -m pip install -r requirements-dev.txt -r requirements.txt
python -m pip install -e .
jupyter nbextension install --py --symlink --sys-prefix itkwidgets
jupyter nbextension enable --py --sys-prefix itkwidgets
jupyter nbextension enable --py --sys-prefix widgetsnbextension
python -m pytest

The above commands will setup your system for development with the Jupyter Notebook. To develop for Jupyter Lab, additionally run:

jupyter labextension install @jupyter-widgets/jupyterlab-manager
jupyter labextension install ./js

Warning

This project is under active development. Its API and behavior may change at any time. We mean it.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
itkwidgets-0.13.2-py2.py3-none-any.whl (3.5 MB) Copy SHA256 hash SHA256 Wheel py2.py3 Sep 20, 2018
itkwidgets-0.13.2.tar.gz (1.9 MB) Copy SHA256 hash SHA256 Source None Sep 20, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page