Skip to main content
PyPI version npm Build status Interactive example on MyBinder License Software citation DOI

Interactive Jupyter widgets to visualize images, point sets, and meshes on the web.

itkwidgets chest CT in JupyterLab

Key Features:

itkwidgets demo

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

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

Examples on Binder

Data types:

Recipes:

Installation

To install the widgets for the Jupyter Notebook with pip:

pip install itkwidgets

For Jupyter Lab, additionally, run:

jupyter labextension install @jupyter-widgets/jupyterlab-manager jupyter-matplotlib jupyterlab-datawidgets itkwidgets

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?

Other available widgets:

  • itkwidgets.line_profile: Plot an intensity line profile.

  • itkwidgets.checkerboard: Compare two images in a checkerboard pattern.

  • itkwidgets.compare: Compare two images side-by-side.

Using within a Docker Container

You can use itkwidgets from within a docker container with jupyterlab. To create a local docker image:

Install docker and build the docker image with:

git clone https://github.com/InsightSoftwareConsortium/itkwidgets
cd itkwidgets/docker
IMAGE=itkwidgets:0.1.0
docker build -t $IMAGE .

Then run the docker container with:

EXAMPLESDIR=`pwd`/../examples
docker run -it --rm -v $EXAMPLESDIR:/home/jovyan -p 8888:8888 itkwidgets:0.1.0

Finally, connect to your notebook at http://127.0.0.1:8888/lab

Advanced Usage

The itkwidgets are based on ipywidgets. As a consequence, widgets traits can be queried, assigned, or observed with the viewer object returned by the view function. itkwidgets 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

Examples

After installation, try the following examples that demonstrate how to visualize:

or how to:

Troubleshooting

IOPub data rate exceeded.

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

Scrolling in JupyterLab

Cell output scrolls by default in JupyterLab. To disable scrolling, right click in the region to the left of the output and select Disable Scrolling for Outputs.

‘Permission denied’ during installation

If Permission denied errors occur during installation, install the Python package with user permission via:

pip install –user itkwidgets

For JupyterLab extension installation, configure JupyterLab to use your user application directory by setting the environmental variable, JUPYTERLAB_DIR:

export JUPYTERLAB_DIR=$HOME/.local/share/jupyter/lab

Check that this is picked up in the value of the Application directory reported by:

jupyter lab path

Then, install the extension as usual:

jupyter labextension install @jupyter-widgets/jupyterlab-manager jupyter-matplotlib jupyterlab-datawidgets itkwidgets

Hacking

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

git clone https://github.com/InsightSoftwareConsortium/itkwidgets.git
cd itkwidgets
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
python -m pytest --nbmake examples/*.ipynb

The above commands will setup your system for development with the Jupyter Notebook. In one terminal, start Jupyter:

cd itkwidgets
jupyter notebook

In another terminal, put Webpack in watch mode to rebuild any Javascript changes when you save a Javascript file:

cd itkwidgets
npm run watch

If Python code is changed, restart the kernel to see the changes. If Javascript code is changed, reload the page after to Webpack has finished building.

To develop for Jupyter Lab, additionally run:

jupyter labextension install @jupyter-widgets/jupyterlab-manager jupyter-matplotlib jupyterlab-datawidgets jupyter-webrtc
jupyter labextension install ./js
jupyter lab --watch

Release files for itkwidgets 0.32.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for itkwidgets 0.32.6
File Size Uploaded
itkwidgets-0.32.6.tar.gz 1.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for itkwidgets 0.32.6
File Interpreter ABI Platform
itkwidgets-0.32.6-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 5.1 MB

Release files / itkwidgets-0.32.6.tar.gz

Download URL itkwidgets-0.32.6.tar.gz
Size 1.7 MB
Tags Source
SHA-256 checksum
How to use checksums
c93394116cbc0680bdd1130239c2b1aa4cadd08fd7ba3c058df83b4f32bb0d00
BLAKE2b-256 checksum
How to use checksums
2d2bce84ff2871e25d0527c5c5d755b0c79229a80197ce6400c424b5dcf35e9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.7

Release files / itkwidgets-0.32.6-py2.py3-none-any.whl

Download URL itkwidgets-0.32.6-py2.py3-none-any.whl
Size 3.4 MB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
e617f1948126e9de6c15f4f64b3a6918c4b2873a46b52c6a4ae207a76d449817
BLAKE2b-256 checksum
How to use checksums
d19d1a64e834c17ffe615c8f80d8367f0beeafd07338efccf5be9733d0f770da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.7

Release history Release notifications | RSS feed

1.0a50

2 release files

This release

0.32.6 This release

2 release files

0.32.5

2 release files

0.32.4

2 release files

0.32.3

2 release files

0.32.2

2 release files

0.32.1

2 release files

0.31.4

2 release files

0.31.3

2 release files

0.31.2

2 release files

0.30.1

2 release files

0.30.0

2 release files

0.29.0

2 release files

0.27.5

2 release files

0.27.4

2 release files

0.27.3

2 release files

0.27.0

2 release files

0.26.1

2 release files

0.26.0

2 release files

0.25.2

2 release files

0.25.1

2 release files

0.25.0

2 release files

0.24.1

2 release files

0.24.0

2 release files

0.23.1

2 release files

0.23.0

2 release files

0.22.0

2 release files

0.21.1

2 release files

0.20.0

2 release files

0.18.0

2 release files

0.17.1

2 release files

0.17.0

2 release files

0.16.3

2 release files

0.16.2

2 release files

0.16.0

2 release files

0.15.1

2 release files

0.15.0

2 release files

0.14.0

2 release files

0.13.2

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.12.2

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.0

1 release file

0.8.0

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page