A curated list of scientific image analysis resources and software tools.
- π Getting started
- π§βπ€βπ§ Communities
- π Learning resources
- βοΈ Image segmentation
- π Image registration
- πͺ Image denoising
- π Object detection
- πΎ Tracking
- π» Visualization
- π Performance
- ποΈ Open science
- π Python
- π¬ Fiji (ImageJ)
- ποΈ Napari
- 𧬠QuPath
- ποΈ Infrastructure
- πΈ Other
Online courses to learn scientific image analysis:
- Image Processing and Analysis for Life Scientists - BIOP, EPFL.
- Introduction to Bioimage Analysis - Pete Bankheads.
- Image Processing with Python - Data Carpentry
- Image data science with Python and Napari - EPFL & TU Dresden.
Courses in video format:
- First principles in computer vision - Columbia University.
- Introduction to bioimage analysis - Robert Haase.
- Microscopy Series - iBiology. Focused on microscopy techniques.
General image analysis software:
- Fiji - ImageJ, with βbatteries-includedβ.
- Ilastik - Interactive learning and segmentation toolkit.
- Napari - A fast and interactive multi-dimensional image viewer for Python.
- QuPath - Open Software for Bioimage Analysis.
Python setup:
- 2024 - Creating and troubleshooting microscopy analysis workflows: Common challenges and common solutions - Beth Cimini.
- 2023 - Towards effective adoption of novel image analysis methods - Talley Lambert, Jennifer Waters.
- 2022 - A Hitchhiker's guide through the bio-image analysis software universe - Robert Haase et al.
- DigitalSreeni - Focused on Python and deep learning for image analysis
Image segmentation aims to create a segmentation mask that identifies specific classes or objects. Techniques for image segmentation include thresholding, weakly supervised learning (e.g., Ilastik, Weka), and deep learning.
- Thresholding - Introduction to Bioimage Analysis
- Image segmentation - Image data science with Python and Napari
- skimage.segmentation - Classical segmentation algorithms in Python.
- Ilastik - Pixel Classification - Semi-supervised workflow for pixel classification.
- Segment Anything Model 2 (SAM 2) - Promptable, foundation model for image segmentation.
- SAMJ - Segment Anything in Fiji.
- YOLO11 - Instance Segmentation - Image segmentation using Ultralytics YOLO.
- rembg - Remove image backgrounds.
- nnUNet - U-Net based biomedical image segmentation (2D and 3D).
- segmentation_models - Segmentation models with pretrained backbones in Keras (Tensorflow).
- segmentation_models.pytorch - Segmentation models with pretrained backbones in Pytorch.
- Monai - Pytorch-based deep learning framework for biomedical imaging.
- StarDist - Segmentation of cell nuclei and other round (star-convex) objects.
- CellPose - Segmentation of cells and membranes in microscopy images.
Image registration is used to align multiple images, stabilize sequences by compensating for camera movement, track object movement and deformation, and stitch multiple fields of view together.
- skimage.registration - Cross-correlation and optical flow algorithms in Python.
- SPAM - Image correlation in 2D and 3D.
- pystackreg - Image stack (or movie) alignment in Python.
- TurboReg - Image stack (or movie) alignment in Fiji.
- Warpy - Register whole slide images in Fiji.
- ABBA - Aligning Big Brains and Atlases.
- Fast4DReg - 3D drift correction in Fiji.
Image denoising enhances visual quality by removing noise, making structures more distinguishable and facilitating segmentation through thresholding.
- skimage.restoration - Classical denoising algorithms in Python (TV Chambolle, Non-local Means, etc.).
- CAREamics - Deep-learning based, self-supervised algorithms: Noise2Void, N2V2, etc.
- CSBDeep - Image restoration in Fiji.
- noise2self - Blind denoising with self-supervision.
- CellPose3 - OneClick - Deep-learning based denoising models for fluorescence and microscopy images.
- SwinIR - Deep image restoration using Swin Transformer - for grayscale and color images.
Object detection is the process of identifying and localizing objects within an image or video using various shapes such as bounding boxes, keypoints, circles, or other geometric representations.
- YOLO11 - Object Detection - Object detection using Ultralytics YOLO.
- DeepLabCut - Animal pose estimation.
- OpenPifPaf - Human pose estimation.
- Spotiflow - Spot detection for microscopy data.
Object tracking is the process of following objects across time in a video or image time series.
- TrackMate - Fiji plugin.
- Trackpy - Particle tracking in Python.
- Trackastra - Tracking with Transformers.
- ultrack - Large-scale cell tracking.
- co-tracker - Tracking any point on a video.
- LapTrack - Particle tracking in Python.
- Mastodon - Large-scale tracking in Fiji.
A variety of software tools are available for visualizing scientific images and their associated data.
For a detailed comparison of 3D viewers, see 3D Image Visualization software tools.
- Fiji - Volume Viewer - Ideal for Fiji users
- Fiji - 3D Viewer - Ideal for Fiji users
- Fiji - 3Dscript - 3D rendering animations in Fiji
- Napari - Interactive nD image viewer in Python
- PyVista - 3D visualizations in Python through VTK
- vedo - Scientific visualizations of 3D objects
- itkwidgets - VTK viewer in Jupyter notebooks
- stackview - 3D stack visualization in Jupyter notebooks
- Paraview - Scientific visualizations through VTK
- tif2blender - Microscopy image visualization in Blender
- Fiji - BigDataViewer - Ideal for big data
- Neuroglancer - Browser-based visualizations compatible with large images (zarr)
- vizarr - Simple Zarr viewer
- Viv - Multiscale visualization on the web
Performance optimization is the process of making code execution faster, more efficient, or using fewer computing resources.
- System aspects - Basics of Computing Environments for Scientists
- Accelerated large-scale image procesing in Python
- pyclesperanto_prototype - GPU-accelerated bioimage analysis.
- Numba - JIT compiler for Python and Numpy code.
- cuCIM - GPU-accelerated image processing.
- OpenCV - Optimized image processing algorithms.
Open imaging science meets principles of findability, accessibility, interoperability, and reusability (FAIR).
- Reproducible image handling and analysis
- Understanding metric-related pitfalls in image analysis validation
- Reporting reproducible imaging protocols
- When seeing is not believing: application-appropriate validation matters for quantitative bioimage analysis
- Community-developed checklists for publishing images and image analysis
- Creating Clear and Informative Image-based Figures for Scientific Publications
- Effective image visualization for publications β a workflow using open access tools and concepts
Python is a popular programming language for scientific image analysis.
- Managing Conda Environments
- Python environments workshop - Talley Lambert.
- Python 3 documentation
- Programming with Python - Software Carpentry.
- Scikit-image - Scientific image processing toolbox.
- scipy.ndimage - Multidimensional image processing.
- opencv-python - Computer vision toolbox.
Fiji is an open-source software for image processing and analysis. A wide range of community-developed plugins can enhance its functionality.
- Scientific Imaging Tutorials - ImageJ.
- Image handling using Fiji - training materials - Joanna PylvΓ€nΓ€inen.
- MorphoLibJ - Morphological operations.
- DeepImageJ - Run deep learning models in Fiji.
Napari is a fast and interactive multi-dimensional image viewer for Python. It can be used for browsing, annotating, and analyzing scientific images.
To browse all plugins, see napari hub.
- napari-animation - Create animations.
- napari-skimage-regionprops - Region properties.
- napari-threedee - 3D interactivity toolbox.
- Omega - Napari with ChatGPT.
- napari-sam - Segment Anything in Napari.
- napari-imagej - Fiji in Napari.
- devbio-napari - Comprehensive image processing toolbox.
- napari-clusters-plotter - Object clustering.
- napari-accelerated-pixel-and-object-classification - Semi-supervised pixel classification.
- napari-convpaint - Pixel classification based on deep learning feature extraction.
QuPath is an open software for bioimage analysis, often used to process and visualize digital pathology and whole slide images.
- qupath-extension-cellpose - CellPose.
- qupath-extension-stardist - StarDist.
- qupath-extension-sam - Segment Anything in QuPath.
Infrastructure tools for image analysis workflows (and related).
- BIOP-desktop - Virtual desktop for bioimage analysis.
- BAND - Bioimage ANalysis Desktop.
- Fractal - Framework to process bioimaging data at scale in the OME-Zarr format.
- Galaxy (EU) - Web-based platform for accessible computational research.
- Renkulab - Data, Code, and Compute all under one roof.
- Hugging Face Spaces - Build, host, and share ML apps.
- BioImage.IO dev - Models, Datasets, and Applications for bioimage analysis.
- Cameras and Lenses - Bartosz Ciechanowski.
- Knowledge Center - Edmund Optics.
- Pyxu - Modular and Scalable Computational Imaging.
- SplineBox - Efficient splines fitting in Python.
- OrientationJ - Fiji plugin.
- OrientationPy - 2D and 3D orientation measurements in Python.