Skip to content

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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

EPFL Center for Imaging logo epfl

Awesome Scientific Image Analysis Awesome

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

πŸ“Œ Contents

πŸ”– Getting started

Online courses to learn scientific image analysis:

Courses in video format:

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:

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

πŸ“š Learning resources

Curated lists

Papers

Video series

  • DigitalSreeni - Focused on Python and deep learning for image analysis

βœ‚οΈ 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.
  • 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

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

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

🐾 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

πŸ”‹ 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.

πŸ•ŠοΈ 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

Python for image processing

πŸ”¬ 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

🏝️ 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 browse all plugins, see 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.
  • 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.

πŸ›Έ Other

πŸ€– LLMs

πŸ“· Image acquisition

🩻 Image reconstruction

  • Pyxu - Modular and Scalable Computational Imaging.

πŸ’² Splines

  • SplineBox - Efficient splines fitting in Python.

🍭 Orientation

πŸ› οΈ 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.

About

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

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published