A curated list of scientific image analysis resources and software tools.
These are our favourite resources for learning the basics of image analysis:
- Image data science with Python and Napari - EPFL & TU Dresden
- Image Processing and Analysis for Life Scientists - BIOP, EPFL
- Introduction to Bioimage Analysis - Pete Bankheads
Here's a short list of image analysis software that we recommend:
- 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
Read our setup guide:
Curated lists
- Awesome Biological Image Analysis
- Awesome Computer Vision
- A Hitchhiker's guide through the bio-image analysis software universe
- ImageScience.org
Guides
- Introduction to Bioimage Analysis - Pete Bankheads
- Image data science with Python and Napari - EPFL & TU Dresden
- The Image Analysis Field Guide - EPFL Center for Imaging
Courses
- Image Processing and Analysis for Life Scientists - BIOP, EPFL
- Introduction to Programming in the Biological Sciences Bootcamp - Justin Bois
Papers
- Towards effective adoption of novel image analysis methods - Talley Lambert, Jennifer Waters
- Creating and troubleshooting microscopy analysis workflows: Common challenges and common solutions - Beth Cimini
Video series
- Introduction to bioimage analysis
- First principles in computer vision
- DigitalSreeni
- Microscopy Series
- Microcourses
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.
Learning resources
- Thresholding - Introduction to Bioimage Analysis
- Thresholding - Scikit-image
- Segmentation - ImageJ Tutorials
- Image segmentation - Image data science with Python and Napari
Software tools
- skimage.segmentation
- Ilastik - Pixel Classification
- Segment Anything Model 2 (SAM 2)
- Ultralytics YOLO
- rembg
- nnUNet
- segmentation_models
- segmentation_models.pytorch
- Monai
- StarDist
- CellPose
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.
Learning resources
Software tools
Image denoising enhances visual quality by removing noise, making structures more distinguishable and facilitating segmentation through thresholding.
Learning resources
Software tools
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.
Software tools
Object tracking is the process of following objects across time in a video or image time series.
Learning resources
Software tools
A variety of software tools are available for visualizing scientific images and their associated data.
Learning resources
Software tools
Performance optimization is the process of making code execution faster, more efficient, or using fewer computing resources.
Learning resources
- System aspects - Basics of Computing Environments for Scientists
- Accelerated large-scale image procesing in Python
Software tools
Open imaging science meets principles of findability, accessibility, interoperability, and reusability (FAIR).
Software development practices
Reproducibility
- 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
Figures creation
- 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.
Python setup
- Setting up Python for scientific image analysis
- Managing Conda Environments
- Conda Cheatsheet
- Python environments workshop - Talley Lambert
Python programming
- Python 3 documentation
- Automate the Boring Stuff with Python
- Programming with Python - Software Carpentry
- pydevtips: Python Development Tips - Eric Bezzam
- Python packaging 101
Python for image processing
- Image processing with Python - Guillaume Witz
- User Guide - Scikit-image
- 3.3. Scikit-image: image processing - Scientific Python Lectures
- 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.
Learning resources
- Scientific Imaging Tutorials - ImageJ
- Image handling using Fiji - training materials - Joanna Pylvänäinen
Plugins
Napari is a fast and interactive multi-dimensional image viewer for Python. It can be used for browsing, annotating, and analyzing scientific images.
Learning resources
Plugins
QuPath is an open software for bioimage analysis, often used to process and visualize digital pathology and whole slide images.
Learning resources
Extensions
🤖 LLMs
📷 Image acquisition
- Cameras and Lenses
- Knowledge Center - Edmund Optics
🩻 Image reconstruction
👓 Depth estimation
💲 Splines
🍭 Orientation