Scientific image analysis addresses issues related to the acquisition, processing, storage, visualization, and extraction of quantitative measurements from images.
- ๐ Getting started
- ๐งโ๐คโ๐ง Communities
- ๐ Learning resources
- โ๏ธ Image segmentation
- ๐ Image registration
- ๐ช Image denoising
- ๐ Object detection
- ๐พ Tracking
- ๐ป Visualization
- ๐งฉ OME-Zarr
- ๐ 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 data science with Python and Napari - EPFL & TU Dresden.
- bioimagingguide.org - Center for Open Bioimage Analysis.
Courses in video format:
- First Principles of Computer Vision - Columbia University.
- Introduction to bioimage analysis - Robert Haase.
- Microscopy Series - iBiology. Focused on microscopy techniques.
Book format:
- Introduction to Computer Vision - Stan Birchfield.
General image analysis software:
- Fiji - ImageJ, with โbatteries-includedโ.
- Napari - A fast and interactive multi-dimensional image viewer for Python.
- CellProfiler - Open software for automated quantification of biological images.
- QuPath - Open Software for Bioimage Analysis.
- SimpleITK - Open-source multi-dimensional image analysis.
- Image.sc - Popular online forum focused on bioimage analysis.
- GloBIAS - Global Bioimage Analysts' Society.
- Awesome Biological Image Analysis - Image analysis techniques for biological research.
- Awesome Computer Vision - Algorithms and tools for machine vision.
- Awesome Medical Imaging - Research tools for medical imaging.
- 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.
- I2K Conference - Recordings from Virtual I2K conferences.
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.
- Image segmentation - Image data science with Python and Napari.
- Image Segmentation - First Principles of Computer Vision (video format).
- Thresholding - Introduction to Bioimage Analysis.
- Segmentation - ImageJ Tutorials.
- Thresholding - With Scikit-image.
- skimage.segmentation - Classical segmentation algorithms in Python.
- Ilastik - Pixel Classification - Semi-supervised workflow for pixel classification.
- Segment Anything Model 3 (SAM 3) - Promptable foundation model for image segmentation.
- Ultralytics YOLO - Instance Segmentation - Image segmentation using YOLO models.
- rembg - Remove image backgrounds.
- nnUNet - U-Net based biomedical image segmentation (2D and 3D).
- 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.
- SAMJ - Segment Anything in Fiji.
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.
- Image correlation - Theory - Introduction to optical flow (DIC).
- Intro to Image Registration - Overview by Ella Bahry (video format).
- Optical Flow - First Principles of Computer Vision (video format).
- 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.
- VoxelMorph - Learning-based image registration.
- TurboReg - Image stack (or movie) alignment in Fiji.
- Fast4DReg - 3D drift correction in Fiji.
- warpfield - GPU-accelerated, non-rigid registration.
Image denoising enhances visual quality by removing noise, making structures more distinguishable and facilitating segmentation through thresholding.
- Noise - Chapter from the Introduction to Bioimage Analysis handbook.
- Denoising a picture - Tutorial from the Scikit-image website.
- skimage.restoration - Classical denoising algorithms in Python (TV Chambolle, Non-local Means, etc.).
- CAREamics - Deep-learning based, self-supervised algorithms: Noise2Void, N2V2, etc.
- 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.
- CSBDeep - Access CSBDeep based tools in Fiji.
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.
- C4W3L09 YOLO Algorithm - Introduction to YOLO by Andrew Ng (video format).
- Detecting Blobs - First Principles of Computer Vision (video format).
- Ultralytics YOLO - Object Detection - YOLO models for object detection.
- nnDetection - Self-configuring framework for 3D bounding box detection.
- Spotiflow - Spot detection for microscopy data.
- Big-FISH - smFISH spot detection and analysis in Python.
- RS-FISH - Spot detection in 2D and 3D images in Fiji.
- OpenPifPaf - Human pose estimation.
- DeepLabCut - Animal pose estimation.
Object tracking is the process of following objects across time in a video or image time series.
- Walkthrough (trackpy) - Introduction for Python users.
- Getting started with TrackMate - Introduction for Fiji users.
- 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.
- SAM-PT - Segment Anything Meets Point Tracking.
- TrackMate - Fiji plugin.
- Mastodon - Large-scale tracking in Fiji.
- Motile Tracker - Interactive tracking with motile.
- traccuracy - Compute tracking accuracy metrics.
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.
- Visual image comparison - Tutorial from the Scikit-image website.
- open-scivis-datasets - Example images (e.g., CT scans) for visualization.
- QIM data repository - A collection of 3D micro-CT scans.
- Napari - Interactive nD image viewer in Python.
- PyVista - 3D visualizations in Python through VTK.
- ndv - N-dimensional viewer with minimal dependencies.
- vedo - Scientific visualizations of 3D objects.
- itkwidgets - VTK viewer in Jupyter notebooks.
- stackview - 3D stack visualization in Jupyter notebooks.
- fastplotlib - Fast plotting library running on WGPU.
- K3D-jupyter - Jupyter Notebook 3D visualization package.
- Luxar - N-dimensional scientific data in the browser via gaussian splats.
- 3D Viewer - Basic 3D image viewer.
- Volume Viewer - Image viewer with volume rendering capabilities.
- MoBIE - Visualization tool for large images.
- BigDataViewer - 3D viewer optimized for large data sets.
- 3Dscript - Render 3D animations in Fiji.
- Paraview - Scientific visualizations through VTK.
- tif2blender - Microscopy image visualization in Blender.
OME-Zarr is a file format optimized for storing, viewing, and sharing large images.
- An Introduction to OME-Zarr for Big Bioimaging Data - Theory and practice of using the OME-Zarr format.
- Fractal - Framework to process bioimaging data at scale in the OME-Zarr format.
- Ngio - Python library to work with OME-Zarr files.
- fileglancer - Browse, share, and publish OME-Zarr data.
- OME-NGFF Validator - Validate OME-NGFF files.
- OME figure - Create publication figures from OME-Zarr data.
- Neuroglancer - Browser-based visualizations compatible with large images (zarr).
- Viv - Multiscale visualization in the browser.
- vizarr - Simple Zarr viewer.
- Vol-E - Visualize OME-Zarr images in the web browser.
Performance optimization is the process of making code execution faster, more efficient, or using fewer computing resources.
- GPU-Accelerated Image Analysis - PoL Bio-Image Analysis Training School.
- pyclesperanto_prototype - GPU-accelerated bioimage analysis.
- Numba - JIT compiler for Python and NumPy code.
- cuCIM - GPU-accelerated image processing.
- OpenCV - Optimized image processing algorithms.
- dask-image - Image processing with Dask Arrays.
Open imaging science meets principles of findability, accessibility, interoperability, and reusability (FAIR).
- The Turing Way handbook - Reproducible, ethical and collaborative data science.
- Good enough practices in scientific computing - Greg Wilson et al.
- Reproducible image handling and analysis - Kota Miura et al.
- Understanding metric-related pitfalls in image analysis validation - Annika Reinke et al.
- Reporting reproducible imaging protocols - DeLaine D. Larsen et al.
- When seeing is not believing: application-appropriate validation matters for quantitative bioimage analysis - Jianxu Chen et al.
- How to share reproducible and easy to set up Python bioimage analysis pipelines using Pixi - Alberto Diez Sanchez (video format).
- Community-developed checklists for publishing images and image analysis - Christopher Schmied et al.
- Creating Clear and Informative Image-based Figures for Scientific Publications - Helena Jambor et al.
- Effective image visualization for publications โ a workflow using open access tools and concepts - Christopher Schmied et al.
Python is a popular programming language for scientific image analysis.
- Setting up Python for scientific image analysis - Short guide by the EPFL Center for Imaging.
- Managing Conda Environments - Official docs.
- Python environments workshop - Talley Lambert.
- Python for Bioimage Analysis โ Basic Tools and Setup on Windows - Video guide by Alberto Dรญez.
- Python 3 documentation - The official Python documentation.
- Programming with Python - Software Carpentry.
- Intermediate Research Software Development - Carpentries Incubator.
- Scikit-image - Scientific image processing toolbox.
- scipy.ndimage - Multidimensional image processing.
- opencv-python - Computer vision toolbox.
- Introduction to Python for Image Analysis - Jupyterlite Notebook (no installation required).
- Image processing with Python - Data Carpentry.
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.
- BigStitcher - Stitching for large images.
- OMERO - Interact with OMERO from Fiji.
- PTBIOP - BIOP Fiji Update Site.
- FFmpeg - Load videos into Fiji.
- Bio-Formats - Import data from many life sciences file formats.
- MiC - Compute metrics (TP, FP, FN, Jaccard index...) on segmentation masks.
Napari is a fast and interactive multi-dimensional image viewer for Python. It can be used for browsing, annotating, and analyzing scientific images.
- Usage (napari.org) - Official usage documentation.
- Exploratory data analysis with napari - Peter Sobolewski, I2K Conference 2026.
To explore all available plugins, browse the 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.
- napari-serverkit - Run algorithms interactively in Napari.
- napari-data-inspection - Rapidly inspect folders of images.
- napari-plot-profile - Plot a line profile.
- napari-orthogonal-views - Display orthogonal views.
- napari-omero - Browse your OMERO database.
QuPath is an open software for bioimage analysis, often used to process and visualize digital pathology and whole slide images.
- QuPath Documentation - Official docs.
- qupath-extension-sam - Segment Anything in QuPath.
- qupath-extension-cellpose - CellPose.
- qupath-extension-stardist - StarDist.
Infrastructure tools for image analysis workflows (and related).
- BIOP-desktop - Virtual desktop for bioimage analysis.
- BAND - Bioimage ANalysis Desktop.
- Galaxy (EU) - Web-based platform for accessible computational research.
- Renkulab - Data, Code, and Compute all under one roof.
- BioImage.IO dev - Models, Datasets, and Applications for bioimage analysis.
- Imaging Server Kit - Run image processing algorithms via a web API.
- OMERO - Platform for sharing, visualizing and managing microscopy data.
- Nextflow - Create scalable and reproducible workflows.
- bia-bob - LLM-based assistant for interacting with image data.
- BioImage.IO Chatbot - AI assistant specialized in bioimaging.
- Cameras and Lenses - Bartosz Ciechanowski.
- Knowledge Center - Edmund Optics.
- Image Formation - First Principles of Computer Vision (video format).
- Camera Calibration - First Principles of Computer Vision (video format).
- OpenCV: Camera Calibration - Practical camera calibration tutorial.
- Meshroom - Software for 3D scene reconstruction by photogrammetry.
- COLMAP - Structure-from-motion and multi-view stereo.
- Welcome to Inverse Problems and Imaging - Tristan van Leeuwen and Christoph Brune.
- Pyxu - Modular and Scalable Computational Imaging.
- DeepInverse - Solve imaging inverse problems using deep learning.
- makesense.ai - Simple annotation app for YOLO models.
- supervision - Draw detections on an image or video.
- OrientationJ - Fiji plugin.
- OrientationPy - 2D and 3D orientation measurements in Python.
- SplineBox - Efficient splines fitting in Python.
- scikit-shapes - Shape processing in Python.
- tifffile - Read and write TIFF images.
- imageio - Python library for reading and writing image data.
- pims - Python Image Sequence.
- imutils - Image utilities.
- bioio - Read, write, and manage microscopy images.
- imantics - Image annotation semantics.
- Pixel Patrol - Scientific dataset quality control and data exploration.
Contributions to this list are welcome (โก๏ธ contributing.md). Add your resource suggestions via pull requests or create an issue to start a discussion.