ImFusion SDK Base Modules

Image Handling and Visualization

Load, visualize and handle medical data from different file formats. Low level access and control over visualization and rendering of medical data.

  • Support for 2D/3D/4D single- or multichannel images of all modalities, meshes and pointcloud, graphs, tracking information, and live streaming.
  • Comprehensive file format support: DICOM (including PACS), MetaImage, NIFTI, PNG/TIFF/JPEG, AVI, PLY, OBJ, and many more
  • State-of-the-art real-time visualization supporting Global Illumination and Order-independent Transparency
  • Blending and fusion of any number of 2D/3D image and geometry data
  • Gradient-free shading option for noisy image data such as 3D ultrasound
  • Support for real-time clipping, masking, and deformation fields

Machine Learning

Execute your machine learning models in the SDK or in the ImFusion, including pre- and post-processing — all you need is a yaml configuration

Run it on volumetric images, real-time image streams, meshes or point clouds

Supported ML frameworks
Windows MacOS ARM Ubuntu 22/24
OnnxRuntime CPU / CUDA / DirectML CPU CPU / CUDA
Pytorch CPU / CUDA CPU / MPS CPU / CUDA
TensorRT

Registration

Fast, multi-modal, GPU accelerated image registration, supporting rigid, affine and deformable models.

Match 2D, 3D and 4D data with flexible and customizable registration workflows, supporting

  • Interactive landmark-based registration
  • Customizable presets
  • Machine Learning based automatic initilization
  • Built-in integration of DISA based methods

Segmentation

Rich toolset for labeling 2D and 3D datasets manually or semi-automatically

  • Fast, adaptive smart brush with flexible configuration options for 2D and 3D data
  • Support for volumetric, surface, box and point based annotations
  • Advanced topological analysis and refinement of annotations
  • Extended set of overlap and distance based segmentation metrics
  • Intuitive UI ImFusion Suite and ImFusion Labels

 

				
					using namespace IM = ImFusion::ImageMath; 

// Input
auto image = std::make_unique<SharedImage>(/* e.g. a CT image */);
auto mask = std::make_unique<SharedImage>(/* e.g. a binary */);
// Define arithmetic operation that applies the mask
auto op  = IM::makeArray(a) * IM::makeArray(b);

// Specify computing device (default: Auto) to GPU
op.setDeviceStrategy(IM::DeviceStrategy::ForceGPU);

// Evaluate operation into image, actual computation happens now
auto maskedImage = op.evaluateIntoImage<SharedImage>();
				
			
				
					import imfusion as imf
import imfusion.imagemath
# Input
image: imf.SharedImage = imf.load('path/to/ct')[0][0]
mask: imf.SharedImage = imf.load('path/to/binarymask')[0][0]
# Eager execution
masked_image = image * mask
# Lazy execution
from imfusion.imagemath import lazy
# Define operation
op = lazy.Expression(image) * lazy.Expression(mask)
# Actual computation happens now
masked_image = op.evaluate()
				
			

GPU Acceleration

Native integration of OpenGL shaders for computation purposes, no NVidia vendor lock!

  • Convenience wrappers for tensor-like arithmetics on image data 
  • Seamless computation dispatch on CPU or GPU
  • Available in C++ and Python

Get our SDK free for non-commercial use

Includes the Python SDK and the ImFusion Suite, both with the Base Modules listed above.

While the ImFusion SDK and ImFusion Suite are not certified medical products, we offer services to help integrate them into regulatory-compliant solutions. This includes assistance with documentation required for CE/FDA submission processes.

Close