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 |
---|---|---|
NVIDIA Quadro K620 | ~ 300 kHz ( ~2.2 volumes/s) | ~ 250 kHz ( ~1.9 volumes/s) |
NVIDIA GeForce GTX 1080 Ti | ~ 4.8 MHz (~ 36 volumes/s) | ~ 4.0 MHz (~ 30 volumes/s) |
You can find more information here.
The following plug-ins are currently available:
Acquisition Systems:
Name | Description |
---|---|
Virtual OCT System | Can be used to load already acquired OCT raw data from the disk |
Extensions:
Name | Description |
---|---|
Demo Extension | This demo extension is for developers. It has no useful functionality, but the code can be used as a template for developing custom extensions. |
Image Statistics | Displays useful image statistics, such as a histogram, in real time of currently acquired B-scans |
Socket Stream | Streaming of OCT data via TCP/IP. Just for slow OCT acquisitions. |
Phase Extraction | Can be used to determine a suitable resampling curve for k-linearization. |
The easiest way to develop custom plug-ins is to clone/download the entire OCTproZ project, compile the DevKit and OCTproZ and use the existing examples as templates. Have a look at the plugin developer guide.
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.
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.
On some Linux distributions floating dock widgets lose mouse focus when dragged. See: Qt bug
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}
}
OCTproZ is not the only processing software for OCT raw data. Here is a list of other projects you should check out:
Name | Info |
---|---|
ABC-OCT | C++ |
myOCT | Matlab |
OCTSharp | Cuda, C# |
vortex | Cuda, C++ with Python bindings |
OCTview | C++, Python, low latency cpu processing |
OCTproZ is licensed under GPLv3.
The DevKit is licensed under MIT license.