https://github.com/epfl-center-for-imaging/awesome-scientific-image-analysis
A curated list of scientific image analysis resources and software tools.
https://github.com/epfl-center-for-imaging/awesome-scientific-image-analysis
List: awesome-scientific-image-analysis
awesome image-analysis scientific-imaging
Last synced: 3 months ago
JSON representation
A curated list of scientific image analysis resources and software tools.
- Host: GitHub
- URL: https://github.com/epfl-center-for-imaging/awesome-scientific-image-analysis
- Owner: EPFL-Center-for-Imaging
- Created: 2025-02-03T09:08:15.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-02-10T08:41:58.000Z (3 months ago)
- Last Synced: 2025-02-10T09:32:52.972Z (3 months ago)
- Topics: awesome, image-analysis, scientific-imaging
- Homepage:
- Size: 156 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- ultimate-awesome - awesome-scientific-image-analysis - A curated list of scientific image analysis resources and software tools. (Programming Language Lists / Python Lists)
README


# Awesome Scientific Image Analysis [](https://awesome.re)A curated list of scientific image analysis resources and software tools.
## π Getting started
These are our favourite **resources** for learning the basics of image analysis:
- [Image data science with Python and Napari](https://biapol.github.io/Image-data-science-with-Python-and-Napari-EPFL2022/intro.html) - EPFL & TU Dresden
- [Image Processing and Analysis for Life Scientists](https://courseware.epfl.ch/courses/course-v1:EPFL+IPA4LS+2019_t3/about) - BIOP, EPFL
- [Introduction to Bioimage Analysis](https://bioimagebook.github.io/README.html) - Pete BankheadsHere's a short list of image analysis **software** that we recommend:
- [Fiji](https://fiji.sc/) - ImageJ, with βbatteries-includedβ
- [Ilastik](https://www.ilastik.org/) - Interactive learning and segmentation toolkit
- [Napari](https://napari.org/) - A fast and interactive multi-dimensional image viewer for Python
- [QuPath](https://qupath.github.io/) - Open Software for Bioimage AnalysisRead our **setup guide**:
- [Setting up Python for scientific image analysis](https://imaging.epfl.ch/field-guide/sections/python/notebooks/python_setup.html)
## π§βπ€βπ§ Communities
- [Image.sc](https://image.sc/)
- [GloBIAS](https://www.globias.org/)
- [SwissBIAS](https://swissbias.github.io/)## π Learning resources
**Curated lists**
- [Awesome Biological Image Analysis](https://github.com/hallvaaw/awesome-biological-image-analysis)
- [Awesome Computer Vision](https://github.com/jbhuang0604/awesome-computer-vision)
- [Awesome Medical Imaging](https://github.com/fepegar/awesome-medical-imaging)**Guides**
- [Introduction to Bioimage Analysis](https://bioimagebook.github.io/README.html) - Pete Bankheads
- [Image data science with Python and Napari](https://biapol.github.io/Image-data-science-with-Python-and-Napari-EPFL2022/intro.html) - EPFL & TU Dresden
- [The Image Analysis Field Guide](https://imaging.epfl.ch/field-guide/) - EPFL Center for Imaging**Courses**
- [Image Processing and Analysis for Life Scientists](https://courseware.epfl.ch/courses/course-v1:EPFL+IPA4LS+2019_t3/about) - BIOP, EPFL
- [Introduction to Programming in the Biological Sciences Bootcamp](https://justinbois.github.io/bootcamp/2022_epfl/#) - Justin Bois**Papers**
- [A Hitchhiker's guide through the bio-image analysis software universe](https://febs.onlinelibrary.wiley.com/doi/full/10.1002/1873-3468.14451) - Robert Haase et al.
- [Towards effective adoption of novel image analysis methods](https://www.nature.com/articles/s41592-023-01910-2) - Talley Lambert, Jennifer Waters
- [Creating and troubleshooting microscopy analysis workflows: Common challenges and common solutions](https://onlinelibrary.wiley.com/doi/full/10.1111/jmi.13288) - Beth Cimini**Video series**
- [Introduction to bioimage analysis](https://www.youtube.com/watch?v=e-2DbkUwKk4&list=PL5ESQNfM5lc7SAMstEu082ivW4BDMvd0U&index=3)
- [First principles in computer vision](https://www.youtube.com/channel/UCf0WB91t8Ky6AuYcQV0CcLw)
- [DigitalSreeni](https://www.youtube.com/c/DigitalSreeni)
- [Microscopy Series](https://www.ibiology.org/online-biology-courses/microscopy-series/)
- [Microcourses](https://www.youtube.com/@Microcourses/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**
- [Thresholding - Introduction to Bioimage Analysis](https://bioimagebook.github.io/chapters/2-processing/3-thresholding/thresholding.html)
- [Thresholding - Scikit-image](https://scikit-image.org/docs/dev/auto_examples/segmentation/plot_thresholding.html)
- [Segmentation - ImageJ Tutorials](https://imagej.net/imaging/segmentation)
- [Image segmentation - Image data science with Python and Napari](https://biapol.github.io/Image-data-science-with-Python-and-Napari-EPFL2022/day2d_image_segmentation/readme.html)**Software tools**
- [skimage.segmentation](https://scikit-image.org/docs/stable/api/skimage.segmentation.html)
- [Ilastik - Pixel Classification](https://www.ilastik.org/documentation/pixelclassification/pixelclassification)
- [Segment Anything Model 2 (SAM 2)](https://github.com/facebookresearch/sam2)
- [Ultralytics YOLO](https://github.com/ultralytics/ultralytics)
- [rembg](https://github.com/danielgatis/rembg)
- [nnUNet](https://github.com/MIC-DKFZ/nnUNet)
- [segmentation_models](https://github.com/qubvel/segmentation_models)
- [segmentation_models.pytorch](https://github.com/qubvel/segmentation_models.pytorch)
- [Monai](https://github.com/Project-MONAI/MONAI)
- [StarDist](https://github.com/stardist/stardist)
- [CellPose](https://github.com/mouseland/cellpose)## π 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**
- [Image correlation - Practice](https://www.spam-project.dev/docs/)
- [Image correlation - Theory](https://www.spam-project.dev/docs/)**Software tools**
- [skimage.registration](https://scikit-image.org/docs/stable/api/skimage.registration.html)
- [SPAM](https://www.spam-project.dev/)
- [pystackreg](https://github.com/glichtner/pystackreg)
- [TurboReg](https://bigwww.epfl.ch/thevenaz/turboreg/)
- [Warpy](https://imagej.net/plugins/bdv/warpy/warpy)
- [ABBA](https://github.com/BIOP/ijp-imagetoatlas)## πͺ Image denoising
Image denoising enhances visual quality by removing noise, making structures more distinguishable and facilitating segmentation through thresholding.
**Learning resources**
- [Noise - Introduction to Bioimage Analysis](https://bioimagebook.github.io/chapters/3-fluorescence/3-formation_noise/formation_noise.html)
- [Denoising a picture (scikit-image)](https://scikit-image.org/docs/stable/auto_examples/filters/plot_denoise.html)**Software tools**
- [skimage.restoration](https://scikit-image.org/docs/stable/api/skimage.restoration.html)
- [CAREamics](https://github.com/CAREamics/careamics)## π 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**
- [Ultralytics YOLO](https://github.com/ultralytics/ultralytics)
- [DeepLabCut](https://www.mackenziemathislab.org/deeplabcut)
- [OpenPifPaf](https://github.com/openpifpaf/openpifpaf)
- [Spotiflow](https://github.com/weigertlab/spotiflow)## πΎ Tracking
Object tracking is the process of following objects across time in a video or image time series.
**Learning resources**
- [Single cell tracking with napari](https://napari.org/stable/tutorials/tracking/cell_tracking.html)
- [Walkthrough (trackpy)](https://soft-matter.github.io/trackpy/dev/tutorial/walkthrough.html)
- [Getting started with TrackMate](https://imagej.net/plugins/trackmate/tutorials/getting-started)**Software tools**
- [TrackMate](https://imagej.net/plugins/trackmate/)
- [Trackpy](https://github.com/soft-matter/trackpy)
- [Trackastra](https://github.com/weigertlab/trackastra)
- [ultrack](https://github.com/royerlab/ultrack)
- [co-tracker](https://github.com/facebookresearch/co-tracker)
- [LapTrack](https://github.com/yfukai/laptrack)## π» Visualization
A variety of software tools are available for visualizing scientific images and their associated data.
**Learning resources**
- [Visual image comparison (Scikit-image)](https://scikit-image.org/docs/stable/auto_examples/applications/plot_image_comparison.html#sphx-glr-auto-examples-applications-plot-image-comparison-py)
**Software tools**
- [Fiji](https://fiji.sc/)
- [Napari](https://napari.org/stable/)
- [QuPath](https://qupath.github.io/)
- [Paraview](https://www.paraview.org/)
- [Neuroglancer](https://github.com/google/neuroglancer)
- [pyvista](https://pyvista.org/)
- [vedo](https://github.com/marcomusy/vedo)
- [tif2blender](https://github.com/oanegros/tif2blender)
- [NeuroMorph](https://github.com/NeuroMorph-EPFL/NeuroMorph)
- [BigDataViewer](https://imagej.net/plugins/bdv/)## π Performance
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](https://compenv.phys.ethz.ch/system_aspects/)
- [Accelerated large-scale image procesing in Python](https://github.com/EPFL-Center-for-Imaging/accel-large-image-proc-talk)**Software tools**
- [pyclesperanto_prototype](https://github.com/clEsperanto/pyclesperanto_prototype)
- [Numba](https://numba.pydata.org/)
- [cuCIM](https://github.com/rapidsai/cucim)
- [OpenCV](https://opencv.org/)## ποΈ Open science
Open imaging science meets principles of findability, accessibility, interoperability, and reusability (FAIR).
**Software development practices**
- [The Turing Way handbook](https://the-turing-way.netlify.app/index.html)
- [Code Publishing cheat sheet](https://www.epfl.ch/schools/enac/wp-content/uploads/2022/06/ENAC-IT4R_Code_Publishing_Cheat_Sheet.pdf)
- [Good enough practices in scientific computing](https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005510)**Reproducibility**
- [Reproducible image handling and analysis](https://www.embopress.org/doi/full/10.15252/embj.2020105889)
- [Understanding metric-related pitfalls in image analysis validation](https://arxiv.org/abs/2302.01790)
- [Reporting reproducible imaging protocols](https://www.sciencedirect.com/science/article/pii/S2666166722009194?via%3Dihub)
- [When seeing is not believing: application-appropriate validation matters for quantitative bioimage analysis](https://www.nature.com/articles/s41592-023-01881-4)**Figures creation**
- [Community-developed checklists for publishing images and image analysis](https://arxiv.org/abs/2302.07005)
- [Creating Clear and Informative Image-based Figures for Scientific Publications](https://www.biorxiv.org/content/10.1101/2020.10.08.327718v2)
- [Effective image visualization for publications β a workflow using open access tools and concepts](https://f1000research.com/articles/9-1373)## π Python
Python is a popular programming language for scientific image analysis.
**Python setup**
- [Setting up Python for scientific image analysis](https://imaging.epfl.ch/field-guide/sections/python/notebooks/python_setup.html)
- [Managing Conda Environments](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html)
- [Conda Cheatsheet](https://docs.conda.io/projects/conda/en/latest/_downloads/843d9e0198f2a193a3484886fa28163c/conda-cheatsheet.pdf)
- [Python environments workshop](https://hackmd.io/@talley/SJB_lObBi) - Talley Lambert**Python programming**
- [Python 3 documentation](https://docs.python.org/3/)
- [Automate the Boring Stuff with Python](https://automatetheboringstuff.com/)
- [Programming with Python](https://swcarpentry.github.io/python-novice-inflammation/index.html) - Software Carpentry
- [pydevtips: Python Development Tips](https://pydevtips.readthedocs.io/en/latest/index.html) - Eric Bezzam
- [Python packaging 101](https://www.pyopensci.org/python-package-guide/tutorials/intro.html)**Python for image processing**
- [Image processing with Python](https://github.com/guiwitz/Python_image_processing) - Guillaume Witz
- [User Guide](https://scikit-image.org/docs/stable/) - Scikit-image
- [3.3. Scikit-image: image processing](https://scipy-lectures.org/packages/scikit-image/index.html) - Scientific Python Lectures
- [Image processing with Python](https://datacarpentry.org/image-processing/) - Data Carpentry## π¬ 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**
- [Scientific Imaging Tutorials](https://imagej.net/imaging/index) - ImageJ
- [Image handling using Fiji - training materials](https://zenodo.org/records/14771563) - Joanna PylvΓ€nΓ€inen**Plugins**
- [ThunderSTORM](https://github.com/zitmen/thunderstorm)
- [MorphoLibJ](https://imagej.net/plugins/morpholibj)
- [OrientationJ](https://bigwww.epfl.ch/demo/orientationj/)## ποΈ Napari
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**
- [napari.org](https://napari.org/stable/)
**Plugins**
- [napari-animation](https://github.com/napari/napari-animation)
- [napari-skimage-regionprops](https://github.com/haesleinhuepf/napari-skimage-regionprops)
- [Omega](https://github.com/royerlab/napari-chatgpt)
- [napari-threedee](https://github.com/napari-threedee/napari-threedee)## 𧬠QuPath
QuPath is an open software for bioimage analysis, often used to process and visualize digital pathology and whole slide images.
**Learning resources**
- [qupath.github.io](https://qupath.github.io)
**Extensions**
- [qupath-extension-cellpose](https://github.com/BIOP/qupath-extension-cellpose)
- [qupath-extension-stardist](https://github.com/qupath/qupath-extension-stardist)
- [qupath-extension-sam](https://github.com/ksugar/qupath-extension-sam)## πΈ Other
**π€ LLMs**
- [bia-bob](https://github.com/haesleinhuepf/bia-bob)
- [BioImage.IO Chatbot](https://github.com/bioimage-io/bioimageio-chatbot)**π· Image acquisition**
- [Cameras and Lenses](https://ciechanow.ski/cameras-and-lenses/)
- [Knowledge Center](https://www.edmundoptics.eu/knowledge-center) - Edmund Optics**π©» Image reconstruction**
- [Pyxu](https://pyxu-org.github.io/)
**π Depth estimation**
- [Depth Anything](https://github.com/LiheYoung/Depth-Anything)
**π² Splines**
- [SplineBox](https://splinebox.readthedocs.io/en/latest/index.html)
**π Orientation**
- [OrientationPy](https://epfl-center-for-imaging.gitlab.io/orientationpy/introduction.html)
**π Measurements**
- [pixelflow](https://github.com/alan-turing-institute/pixelflow)