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.
Live OCT visualization with OCTproZ: Laser cutting a spring onion
B-scan and volume rendering with LUT | B-scan, en face view and 1D plot |
---|---|
-
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)
A detailed overview of the OCTproZ processing pipeline can be found here.
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.
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.
An overview of currently available plugins can be found here.
A test dataset that can be used with the Virtual OCT System can be downloaded from here.
An online version of the user manual can be found here.
The plugin developer guide can be found here.
Compiling instructions can be found here.
Contribution guidelines can be found here.
Vision and long-term goals can be found here.
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}
}
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 |
OCTproZ is licensed under GPLv3.
The DevKit is licensed under MIT license.