Examples
Basic usage
Example | Description |
---|---|
Basic Stack Viewport Usage | Displays a single image in a Stack Viewport. |
Stack Viewport API | Demonstrates how to interact with a Stack viewport (e.g. Set VOI Range, Next/Previous Images, Flip H/V, Rotate, Invert, Zoom/Pan, Reset) |
Stack Viewport Positioning | Demonstrates basic positioning of the viewport image using display area and flip/rotation |
Stack Sigmoid LUT | Demonstrates the Sigmoid LUT Function instead of Linear |
Stack Viewport Events | Demonstrates the Events that are fired during interaction with a Stack Viewport |
Stack Viewport Canvas-to-World | Demonstrates how to obtain the coordinates in the 3D world from a coordinate on the canvas. |
Basic Volume Viewport Usage | Displays a set of DICOM images in a Volume Viewport. |
Volume Viewport API | Demonstrates how to interact with a Volume viewport (e.g. Set VOI Range, Change Camera Position / Orientation, Change Slab Thickness, Flip H/V, Rotate, Invert, Zoom/Pan, Reset) |
Volume Sigmoid LUT | Demonstrates the Sigmoid LUT Function instead of Linear |
3D Volume Rendering | Demonstrates how to 3D render a volume and apply a preset |
Volume Viewport Events | Demonstrates the Events that are fired during interaction with a Volume Viewport |
Multiple Volumes in a Volume Viewport | Demonstrates how to interact with a Volume viewport when using multiple volumes (e.g. for PET/CT fusion). |
Multiple Volume Canvas-to-World | Demonstrates how to use the canvasToWorld API to find the intensity value of each volume on mouse hover |
Poly Data Actor in a Volume Viewport | Demonstrates how to render poly data with a Volume viewport |
Legacy DICOMweb (WADO-URI) Support | Demonstrates how to support retrieval of entire Part 10 DICOM files directly via URL |
Basic Volume using streaming WADOURI | Demonstrates how to displays a DICOM series (via URL) in a Volume viewport |
Load Web images of PNG or JPG format | Demonstrates how render web images in a stack viewport |
Load a dynamic 4D data | Demonstrates how you can render 4D data with cornerstone 3d |
Render To Canvas | Demonstrates how to use the api to render to a canvas directly |
Change the colormap and adjusting the opacity | Demonstrate how to interact with a fusion viewport, specifically by changing the colormap and adjusting the opacity. |
Prioritizing Slices during Volume Loading | Demonstrates how to customize the slice loading order using the streaming-image volume loader |
Programmatic Pan/Zoom | Demonstrates how to programmatically pan/zoom a stack viewport. It can be used for setting initial display area and presentation state. |
DICOM P10 from the local file system | Provides an interface to load a DICOM P10 image from your local file system to the Cornerstone3D |
DICOM P10 from the local file system using CPU | Cornerstone3D uses WebGL for rendering by default (if available) and a fallback to CPU. This example force rendering on CPU for debugging purposes. |
Stack viewport default properties | Demonstrates how you can set per image properties for a stack viewport that acts as default values for that specific image |
Volume Slab Scroll | Demonstrates how to use the slab scroll tool to scroll through a volume |
Resize viewport and change aspect ratio | Resize the viewport and allow various aspect ratios/conditions |
Apply view reference and/or presentation parameters | Demonstrates how to apply various view/reference presentation parameters. |
Custom Web Worker Function | Demonstrates how to use the web worker manager to register and execute custom web worker functions off the main thread |
Tools library
Example | Description |
---|---|
ETDRS Grid Tool | Demonstrates how to use the ETDRS Grid tool. An ETDRS Grid (Early Treatment Diabetic Retinopathy Study Grid) is a standardized grid used in ophthalmology to assess macular thickness and retinal changes. |
Multiple Tool Groups | Demonstrates the usage of multiple tool groups for a set of viewports. |
Stack Manipulation Tools | Demonstrates several manipulation tools (window/level, pan, zoom) as well as Stack Viewport-specific scrolling |
Stack Manipulation Tools Touch | Demonstrates several manipulation tools (window/level, pan, zoom) as well as Stack Viewport-specific scrolling for mobile touch |
Annotation Tool Modes | Demonstrates the various tool modes for annotation tools (active, passive, enabled, disabled) |
Stack Annotation Tools | Demonstrates usage of various annotation tools (Probe, Rectangle ROI, Elliptical ROI, Bidirectional measurements) on a Stack Viewport. |
Calibration Tools | Demonstrates usage of calibration tools on a Stack Viewport. |
Volume Annotation Tools | Demonstrates annotation using the Length tool in a Volume Viewport (on axial, sagittal, and oblique views) |
Annotation Selection and Locking | Demonstrates how to toggle the Locked and Selected states for Annotations |
Viewports Reset Camera | Demonstrates various options that are available for resetting camera on viewports |
Annotation changing visibility | Demonstrates how to toggle the Visibility state for Annotations |
Binding Tools with Modifier Keys | Demonstrates how to bind a tool to a keyboard and mouse combination (e.g. shift+click, ctrl+click) |
Magnify Tool | Demonstrates the usage of the magnification tool |
Advanced Magnify Tool | Demonstrates the usage of the advanced magnification tool on stack and volume viewports |
CINE Tool | Demonstrates the usage of the CINE tool |
Freehand ROI Tool | Demonstrates drawing of both open and closed freehand ROIs (contour tool) on stack and volume viewports |
Sculptor Tool | Demonstrates sculpting of freehand ROIs and FreehandContourSegmentations |
Manipulation Tools with Poly Data in a Volume Viewport API | Demonstrates how to interact with a Volume viewport (Pan, Zoom, Rotate) by mouse events |
Volume Viewport Orientation | Demonstrates you can switch between different orientation of a volume viewport |
Referencing Cursors | Demonstrates how to synchronize the cursor between multiple viewports |
Double Click With Stack Annotation Tools | Demonstrates double click detection before/during/after using various annotation tools on a stack viewport. |
Load a petCT data where PT series is 4D | Demonstrates how to render a 4D data into multiple viewports and fuse them |
ColorBar | Demonstrates how to add an interactive color bar to stack viewport |
Advanced ColorBar | Demonstrates how to add an interactive color bar to stack and volume viewports with PT/CT volumes |
Ultrasound Enhanced Region | Demonstrates several tools that can be used on Ultrasound data with Sequence of Ultrasound Regions Attributes |
Window Level Region | Demonstrates how to use the window level region tool to adjust the window level of an image |
Spline ROI Tools | Demonstrates how to use spline ROI tools (Linear, Cardinal, Catmull-ROM and BSpline) |
Livewire | Demonstrates how to use the livewire tool to create ROIs |
Segmentation
Example | Description |
---|---|
Labelmap Segmentation Rendering | Demonstrates how to add a Labelmap to the viewports for rendering |
Contour Segmentation Representation | Demonstrates how to use the Contour Segmentation Representation |
Surface Segmentation Representation | Demonstrates how to use the Surface Segmentation Representation |
Labelmap Segmentation Swapping | Demonstrate how to display segmentations on a volume viewport, and swap which segmentation is being displayed |
Global Labelmap Segmentation Configuration | Demonstrates how to set a global configuration for segmentation representations |
Contour rendering configuration | Demonstrates how to set a configuration (such as line thickness) for contour rendering |
Viewport Specific Labelmap Segmentation Configuration | Demonstrate how to change the configuration of how a specific tool group displays segmentations through via segmentation representations |
Labelmap segment-specific Configuration | Demonstrates how to change the configuration of a specific segment |
Segmentation Tools (Labelmap) - Brush, Scissors | Demonstrates how to use manual segmentation tools to modify the segmentation data |
Labelmap Statistics | Show labelmap statistics |
Labelmap Segmentation Dynamic Threshold and Preview | Demonstrates how to use dynamic threshold with preview to modify the segmentation data |
Labelmap Segment Color Change | Here we demonstrate how to change the color of a segment in a segmentation representation |
Labelmap Segmentation Locking | Demonstrate how a segment can be locked such that it cannot be edited by segmentation tools |
Rendering Labelmap with Different Resolutions | Demonstrates that the segmentation resolution need not to be the same as the source data |
Rectangle ROI Threshold Segmentation | Demonstrates how to use the rectangle roi tool to perform threshold segmentation |
Stack Labelmap creation/edit for stack viewports | Demonstrates how to create and edit a segmentation labelmap for stack viewports |
Spline ROI Tools | Demonstrates how to use spline ROI tools (Linear, Cardinal, Catmull-ROM and BSpline) |
Interpolation of Contours between slices | Demonstrates how to setup interpolation between frames for contour segmentations |
Contour Segmentation Configuration | Demonstrates how to set a configuration for contour segmentations |
Segmentation Bidirectional Tool | Demonstrates the calculation of largest bidirectional diameters within segmented contours, akin to RECIST measurements for assessing changes in tumor sizes or anatomical structures over time in medical imaging. |
Segment Select Tool | Demonstrates the segmentSelectTool capabilities which you can use to switch active segment by only hovering over them. |
Spline Segmentation Tools | Demonstrates how to create contour segmentations using SplineROI tool |
Advanced Spline Segmentation Tools | Demonstrates how to create contour segmentations using SplineROI tool on multiple viewports (stack and volume), segmentations and different styles for active and inactive states |
Freehand Segmentation Tool | Demonstrates how to create contour segmentations using planarFreehandROITool tool |
Livewire Segmentation Tool | Demonstrates how to create contour segmentations using livewireContour tool |
sculptorTool Tool | Demonstrates how to have similar brush tool effects on the contour |
Labelmap Editing with Contour | Use contour tools to edit the labelmap |
Advanced Tools library
Example | Description |
---|---|
Maximum Intensity Projection (MIP) - Jump to Click | Demonstrates how to obtain the location of the maximum value along the ray in a MIP view, and then navigate another set of viewports to this location. |
Crosshairs | Here we demonstrate crosshairs linking three orthogonal views of the same data |
Overlay Grid | Demonstrate overlay grid tool usage with three viewports one for each orientation |
Reference Lines | Demonstrate reference line tool for rendering viewports location with respect to each other |
Orientation Marker | Demonstrate orientation marker tool for viewports orientation it has cube, axis and custom actors |
PET-CT Fusion + MIPLayout | PT-CT fusion layout with Crosshairs, and synchronized cameras, CT W/L and PET threshold |
Shared Tool State | Demonstrates that annotations are stored on frame of reference, and can therefore be shared between Stack and Volume Viewports. |
StackViewport to and from VolumeViewport | Demonstrates how annotations are preserved and rendered correctly even when a stack viewport is converted to a volume viewport and vice versa. This is an advanced usage for MPR |
Volume Viewport Synchronization | Demonstrates how to set up synchronization between viewports for viewport-level (e.g. camera) and actor-level (e.g. VOI) properties. |
Cancel Annotation Drawing | Demonstrates how to use the keyboard (ESC) key to cancel annotation drawing. |
Scale Overlay Tool | Demonstrates the scale overlay tool for rendering a scale on a viewport showing the real world size of the image. |
Generate 3D Volume From 4D Data | Demonstrates generating a 3D volume from 4D data using subtract, average or sum. |
Dynamically Add Annotations | Demonstrates how to dynamically add annotations to a viewport |
Tool History | Demonstrates how to use the tool history to undo and redo tool actions |
GPU Segmentation Tools
Example | Description |
---|---|
Region Segment Tool | Demonstrates how to create a segmentation after drawing a 3D sphere and running grow cut algorithm in the GPU |
Region Segment Plus Tool | Demonstrates how to create a segmentation with a single click and running grow cut algorithm in the gpu |
Custom Brush Grow Cut | Demonstrates how to run grow cut algorithm in the GPU on a labelmap with positive and negative seeds |
Whole Body Segment tool | Demonstrates how to segment the whole body of a region selected by the user that is processed in the gpu |
Segmentation AI Assistance | Demonstrates how to use AI assistance tools for segmentation creation using onnx runtime on the client side |
Polymorph Segmentation
Example | Description |
---|---|
Convert contour segmentation to stack labelmap | Demonstrates how to convert a contour segmentation to a stack labelmap |
Convert contour segmentation to volume labelmap | Demonstrates how to convert a contour segmentation to a volume labelmap |
Convert contour segmentation to surface | Demonstrates how to convert a contour segmentation to a closed surface |
Convert stack labelmap to surface | Demonstrates how to convert a stack labelmap to a closed surface |
Convert volume labelmap to surface | Demonstrates how to convert a volume labelmap to a closed surface |
Convert surface to volume labelmap | Demonstrates how to convert a closed surface to a volume labelmap |
Convert surface to stack labelmap | Demonstrates how to convert a closed surface to a stack labelmap |
Convert volume labelmap to contour | Demonstrates how to convert a volume labelmap to a contour segmentation |
Convert surface to contour | Demonstrates how to convert a closed surface to a contour segmentation |
DICOM image loader
Example | Description |
---|---|
WADO-URI (DICOM P10) | WADO-URI (DICOM P10 via HTTP GET) with different codecs |
HTJ2K Stack Basic Loading | Demonstrates basic loading of HTJ2K |
HTJ2K Volume Basic Loading | Demonstrates basic loading of HTJ2K in MPR views |
Stack Progressive Loading | Stack progressive loading using HTJ2K and/or other methods. |
Volume Progressive Loading | Volume progressive loading inter and intra image |
Adapters
Example | Description |
---|---|
DICOM SEG export | Demonstrates how to export a segmentation to DICOM SEG |
DICOM SEG Stack | Demonstrates how to import or export a segmentation to DICOM SEG from a Cornerstone3D stack |
DICOM SEG Volume | Demonstrates how to import or export a segmentation to DICOM SEG from a Cornerstone3D volume |
Other Viewports (video,wsi)
Example | Description |
---|---|
Video Display | Basic video display |
Video Navigation | Navigation of video playback |
Video Color Control | Video Color Correction and Brightness/Contrast |
Video Tools | Video annotation tools |
Video Annotation Grouping | Annotation grouping tools |
Video Labelmap Segmentation | Video Labelmap Based Segmentation |
Video Contour Segmentation | Demonstrates spline and livewire contour segmentation on video viewports |
Video Range Selection | Video range selection |
Whole Slide Imaging | Display WSI Series |
WSI Annotation Tools | WSI with length and other annotation tools |
Nifti Volume loader
Example | Description |
---|---|
Load Nifti Volume | Demonstrates how to load and render a nifti volume |
Tool Usage in Nifti | Demonstrates how to use manipulation and annotation tools on a nifti volume |