OCTproZ
OCTproZ copied to clipboard
OCTproZ is an open source software for optical coherence tomography processing and visualization.
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 |
---|---|---|
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.
Plug-ins
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.
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.
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.
Known issues
On some Linux distributions floating dock widgets lose mouse focus when dragged. See: Qt bug
Publication
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 projects
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 |
License
OCTproZ is licensed under GPLv3. The DevKit is licensed under MIT license.