Skip to content

EPFL-Center-for-Imaging/awesome-scientific-image-analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

48 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

banner

Awesome Scientific Image Analysis Awesome

A curated list of scientific image analysis resources and software tools.

Scientific image analysis addresses issues related to the acquisition, processing, storage, visualization, and extraction of quantitative measurements from images.

Contributions to this list are welcome (➑️ contributing.md). Add your resource suggestions via pull requests or create an issue to start a discussion.

Contents

πŸ”– Getting started

Online courses to learn scientific image analysis:

Courses in video format:

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.

Python:

πŸ§‘β€πŸ€β€πŸ§‘ Communities

  • Image.sc - Popular online forum focused on bioimage analysis.
  • GloBIAS - Global Bioimage Analysts' Society.

πŸ“š Learning resources

Curated lists

Papers

Videos

βœ‚οΈ Image segmentation

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

Software tools

πŸ“ Image registration

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

  • 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.

πŸͺ„ Image denoising

Image denoising enhances visual quality by removing noise, making structures more distinguishable and facilitating segmentation through thresholding.

Learning resources

Software tools

  • 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

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.

Learning resources

Bounding boxes

Spots

  • 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.

Pose estimation

🐾 Tracking

Object tracking is the process of following objects across time in a video or image time series.

Learning resources

Software tools

🌻 Visualization

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.

Learning resources

Software tools

🧩 OME-Zarr

OME-Zarr is a file format optimized for storing, viewing, and sharing large images.

Learning resources

Software tools

  • Neuroglancer - Browser-based visualizations compatible with large images (zarr).
  • vizarr - Simple Zarr viewer.
  • fileglancer - Browse, share, and publish OME-Zarr data.
  • Viv - Multiscale visualization in the browser.
  • Fractal - Framework to process bioimaging data at scale in the OME-Zarr format.
  • Vol-E - Visualize OME-Zarr images in the web browser.
  • OME-NGFF Validator - Validate an OME-NGFF file.

πŸ”‹ Performance

Performance optimization is the process of making code execution faster, more efficient, or using fewer computing resources.

Learning resources

Software tools

  • 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 science

Open imaging science meets principles of findability, accessibility, interoperability, and reusability (FAIR).

Software development practices

Reproducibility

Figures creation

🐍 Python

Python is a popular programming language for scientific image analysis.

Python setup

Python programming

Image processing with Python

πŸ”¬ Fiji (ImageJ)

Fiji is an open-source software for image processing and analysis. A wide range of community-developed plugins can enhance its functionality.

Learning resources

Plugins

  • 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.

🏝️ Napari

Napari is a fast and interactive multi-dimensional image viewer for Python. It can be used for browsing, annotating, and analyzing scientific images.

Plugins

To explore all available plugins, browse the Napari Hub.

🧬 QuPath

QuPath is an open software for bioimage analysis, often used to process and visualize digital pathology and whole slide images.

Extensions

πŸ—οΈ Infrastructure

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.
  • Hugging Face Spaces - Build, host, and share ML apps.
  • 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.

πŸ›Έ Other

πŸ€– LLMs

πŸ“· Image acquisition

🏁 Camera calibration

πŸ„ Photogrammetry

  • Meshroom - Software for 3D scene reconstruction by photogrammetry.

🩻 Image reconstruction

πŸ§ͺ Quality Control

  • Pixel Patrol - Scientific dataset quality control and data exploration.

πŸ–ŒοΈ Image annotation

πŸ’² Splines

  • SplineBox - Efficient splines fitting in Python.

🍭 Orientation

πŸ•ΈοΈ Meshes

πŸ› οΈ Utilities

  • tifffile - Read and write TIFF images.
  • aicsimageio - Image reading and metadata conversion.
  • imageio - Python library for reading and writing image data.
  • patchify - Image patching (tiling).
  • pims - Python Image Sequence.
  • imutils - Image utilities.
  • bioio - Read, write, and manage microscopy images.
  • imantics - Image annotation semantics.

About

A curated list of scientific image analysis resources and software tools.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •