Open Source Optical Coherence Tomography Software

Open Source Optical Coherence Tomography Software - Published in JOSS (2020)

https://github.com/spectralcode/octproz

Science Score: 93.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 7 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

cuda dsp gpu-processing medical-image-processing mhz-oct nvidia-jetson-nano oct optical-coherence-tomography optics qt visualization
Last synced: 6 months ago · JSON representation

Repository

OCTproZ is an open source software for optical coherence tomography processing and visualization.

Basic Info
  • Host: GitHub
  • Owner: spectralcode
  • License: gpl-3.0
  • Language: C++
  • Default Branch: master
  • Homepage:
  • Size: 31.2 MB
Statistics
  • Stars: 119
  • Watchers: 8
  • Forks: 30
  • Open Issues: 7
  • Releases: 11
Topics
cuda dsp gpu-processing medical-image-processing mhz-oct nvidia-jetson-nano oct optical-coherence-tomography optics qt visualization
Created about 6 years ago · Last pushed 8 months ago
Metadata Files
Readme Contributing License

README.md

# OCTproZ

OCTproZ is an open source software for optical coherence tomography (OCT) processing and visualization. A plug-in system enables the integration of custom OCT systems and software modules.

The output windows in the screenshot above show OCT images of a strawberry.

Video

Live OCT visualization with OCTproZ: Laser cutting a spring onion

Screenshots

| B-scan and volume rendering with LUT | B-scan, en face view and 1D plot | | ------------- | ------------- | | | |

Features

  • Real-time OCT processing and visualization with single GPU
    The full OCT processing pipeline is implemented in CUDA and visualization is performed with OpenGL. Depending on the GPU used, OCTproZ can be used for MHz-OCT.

  • Plug-in system
    Plug-ins enable the integration of custom OCT systems and software modules. There are two kinds of plug-ins for OCTproZ: Acquisition Systems and Extensions. An Acquisition System controls the OCT hardware and provides raw data to OCTproZ. Extensions have access to processed OCT data and can be used to extend the functionality of OCTproZ.

  • Cross platform
    OCTproZ runs on Windows and Linux.
    It has been successfully tested on Windows 10, Ubuntu 16.04, Ubuntu 18.04 and JetPack 4.4.1 (Jetson Nano 4 GB)

Processing Pipeline

A detailed overview of the OCTproZ processing pipeline can be found here.

Performance

Performance highly depends on the used computer hardware and the size of the of the OCT data. A test data set with 12 bit per sample, 1024 samples per raw A-scan, 512 A-scans per B-scan and 256 B-scans per volume was used to measure the performance on different systems:

|GPU|A-scan rate without live 3D view|A-scan rate with live 3D view| |---|---|---| |Jetson Nano|~181 kHz (~1.4 volumes/s)|~94 kHz (~0.7 volumes/s)| |GeForce GTX 1080|~3.40 MHz (~26 volumes/s)|~2.93 MHz (~22 volumes/s)|

You can find more information here.

Download and Installation

To run OCTproZ a cuda-compatible graphics card with current drivers is required.

A precompiled package for Windows (64bit) can be downloaded from: GitHub release section. Extract the zip archive and execute OCTproZ, installation is not necessary.

If you need OCTproZ for a different operating system, the easiest way is to compile it yourself. See the compiling section.

Plugins

An overview of currently available plugins can be found here.

Test Dataset

A test dataset that can be used with the Virtual OCT System can be downloaded from here.

User Manual

An online version of the user manual can be found here.

Developer Guide

The plugin developer guide can be found here.

Compiling

Compiling instructions can be found here.

Contributing

Contribution guidelines can be found here.

Long-term goals

Vision and long-term goals can be found here.

How to cite

DOI

BibTeX: @article{Zabic2020, doi = {10.21105/joss.02580}, url = {https://doi.org/10.21105/joss.02580}, year = {2020}, publisher = {The Open Journal}, volume = {5}, number = {54}, pages = {2580}, author = {Miroslav Zabic and Ben Matthias and Alexander Heisterkamp and Tammo Ripken}, title = {Open Source Optical Coherence Tomography Software}, journal = {Journal of Open Source Software} }

Other open source OCT signal processing projects

Here is a list of other projects you should check out:

| Name | Info | |------|------| | ABC-OCT | C++ | | fdoct-gpu-code | Cuda | | myOCT | Matlab | | OCTSharp | Cuda, C# | | OCTview | C++, Python | | oct-cbort | Python | | octlab | C/C++, LabView | | PyOCT | Python | | vortex | Cuda, C++, with Python bindings |

License

OCTproZ is licensed under GPLv3.
The DevKit is licensed under MIT license.

Owner

  • Login: spectralcode
  • Kind: user

JOSS Publication

Open Source Optical Coherence Tomography Software
Published
October 29, 2020
Volume 5, Issue 54, Page 2580
Authors
Miroslav Zabic ORCID
Institute of Quantum Optics, Leibniz University Hannover, Welfengarten 1, 30167 Hannover, Germany, Industrial and Biomedical Optics Department, Laser Zentrum Hannover e.V., Hollerithallee 8, 30419 Hannover, Germany
Ben Matthias
Industrial and Biomedical Optics Department, Laser Zentrum Hannover e.V., Hollerithallee 8, 30419 Hannover, Germany
Alexander Heisterkamp
Institute of Quantum Optics, Leibniz University Hannover, Welfengarten 1, 30167 Hannover, Germany
Tammo Ripken
Industrial and Biomedical Optics Department, Laser Zentrum Hannover e.V., Hollerithallee 8, 30419 Hannover, Germany
Editor
Arfon Smith ORCID
Tags
CUDA Optical Coherence Tomography

GitHub Events

Total
  • Create event: 1
  • Release event: 1
  • Issues event: 13
  • Watch event: 25
  • Issue comment event: 8
  • Push event: 104
  • Pull request event: 2
  • Fork event: 11
Last Year
  • Create event: 1
  • Release event: 1
  • Issues event: 13
  • Watch event: 26
  • Issue comment event: 8
  • Push event: 104
  • Pull request event: 2
  • Fork event: 11

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 576
  • Total Committers: 3
  • Avg Commits per committer: 192.0
  • Development Distribution Score (DDS): 0.005
Past Year
  • Commits: 147
  • Committers: 2
  • Avg Commits per committer: 73.5
  • Development Distribution Score (DDS): 0.014
Top Committers
Name Email Commits
spectralcode i****o@s****m 573
yankun2024 y****k@g****m 2
Arfon Smith a****n 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 25
  • Total pull requests: 4
  • Average time to close issues: 7 months
  • Average time to close pull requests: 3 months
  • Total issue authors: 13
  • Total pull request authors: 4
  • Average comments per issue: 1.52
  • Average comments per pull request: 0.0
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 3
  • Pull requests: 1
  • Average time to close issues: 1 day
  • Average time to close pull requests: 1 minute
  • Issue authors: 3
  • Pull request authors: 1
  • Average comments per issue: 2.67
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • spectralcode (12)
  • chenw11 (2)
  • BOle-ProZ (1)
  • MatthewAwesome (1)
  • jkim447 (1)
  • fonarevvichka (1)
  • timm-landes (1)
  • yankun2024 (1)
  • Ledinor (1)
  • bakulafalls (1)
  • ofirad-11 (1)
  • RC-2000 (1)
  • lopmar (1)
Pull Request Authors
  • yankun2024 (2)
  • spectralcode (2)
  • arfon (1)
  • SimoHan (1)
Top Labels
Issue Labels
help wanted (1) good first issue (1)
Pull Request Labels