Skip to content

About

Scientific image analysis resources and software tools.

Topics

Resources

Contributing

Stars

49 stars

Watchers

2 watching

Forks

Latest commit

ย 

History

82 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Banner

Awesome Scientific Image Analysis Awesome

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

Contents

๐Ÿ”– Getting started

Online courses to learn scientific image analysis:

Courses in video format:

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

๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ 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.
  • warpfield - GPU-accelerated, non-rigid registration.

๐Ÿช„ Image denoising

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

Learning resources

  • Noise - Chapter from the Introduction to Bioimage Analysis handbook.
  • Denoising a picture - Tutorial from the Scikit-image website.

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

Python-based tools

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

Fiji-based tools

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

Other tools

  • Paraview - Scientific visualizations through VTK.
  • tif2blender - Microscopy image visualization in Blender.

๐Ÿงฉ OME-Zarr

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

Software tools

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

Viewers

  • 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

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

Python libraries

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

Fiji 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.
  • MiC - Compute metrics (TP, FP, FN, Jaccard index...) on segmentation masks.

๐Ÿฆ  Napari

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

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

QuPath 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.
  • 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.
  • COLMAP - Structure-from-motion and multi-view stereo.

๐Ÿฉป Image reconstruction

๐Ÿ–Œ๏ธ Image annotation

๐Ÿญ Orientation

โœณ๏ธ Parametric shapes

๐Ÿ› ๏ธ Utilities

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

Contributing

Contributions to this list are welcome (โžก๏ธ contributing.md). Add your resource suggestions via pull requests or create an issue to start a discussion.

About

Scientific image analysis resources and software tools.

Topics

Resources

Contributing

Stars

49 stars

Watchers

2 watching

Forks

Contributors