Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.3%) to scientific vocabulary
Keywords
Repository
A mulit-modal annotation tool for retinal imaging data
Basic Info
Statistics
- Stars: 12
- Watchers: 3
- Forks: 2
- Open Issues: 2
- Releases: 9
Topics
Metadata Files
README.md
EyeLab
EyeLab is a multimodal annotation tool for ophthalmological imaging data.

Getting Started
If you are on Windows, download the latest executable here and double click it to start EyeLab.
For Linux there is no package, but you might want to have a look at the Developers section for how to set up EyeLab.
Importing Data
Use the File Menu on the top left of the EyeLab window to import, save or open data to your workspace.
Supported Formats
- Data exported from HEXEX in the .xml or .vol format
- Data from the RETOUCH challenge
- AMD and Control Dataset from (Farsiu 2014)
You can also import B-scans from a folder (sorting the file names is expected to result in the correct B-scan order)
Annotations can be saved as .eye files, EyeLabs file format.
The Workspace:
Your workspace consists of a combined Enface and Volume view. On the right you have an overview where annotations are managed for the OCT volume as well as for the Enface image.
Navigation
You can zoom in and out using the mouse wheel. With the standard Inspection tool you can move the image around if you want to see another part. If you press CTRL while using the mouse wheel on the Volume view, you scroll through adjacent B-scans. Use CRTL + x to toggle a linked navigation where B-scans change based on your mouse position in the enface.
Area Annotations
An area annotation in Eyelab is a pixel_map on top of the underlying image. Its color can be changed, as well as its visibility.
Adding a new Area Annotation
Create a new area using the (+) symbol in the overview on the right. Specify a name and select Areas from the "Type" dropdown.
Changing Area Annotations
First select the area you want to annotate from the overview on the right. Selecting an area automatically enables the Pen tool. You can now make annotations. The size of the Pen tool can be changed on the right.
If you want to pan around in the image select the Inspection tool on the right.
Layer Annotations
An OCT Layer in Eyelab is combination of explicit layer heights provided per A-scan, and a cubic spline curve which can be manipulated by adding, removing or moving the curves knots.
Adding a new Layer Annotation
Create a new layer using the (+) symbol in the overview on the right. Specify a name and select Layers from the Type dropdown.
Changing Layer Annotations
First select the layer you want to annotate from the overview on the right. Selecting a layer automatically enables the Curve tool. You can now start adding control points of a cubic spline curve, by double click on the desired location. You can move control points by left click and hold and delete them with a right click. These control points consist of a red circle the curve has to pass through and two blue rectangles which control at which angle the curve enters and leaves the red control point
If you want to pan around in the image select the Inspection tool on the right.
The layer heights are constantly updated to represent the position of the current cubic spline curve.
The .eye format
.eye files are zip archives of the following structure:
file.eye
│ meta.json
│ raw_volume.npy # unprocessed by eyepy
│
└───localizer
│ │ meta.json
│ │ lcoalizer.npy
│ │
│ └───annotations
│ └───pixel
│ │ meta.json
│ │ pixel_maps.npy
│
└───annotations
└───layers
│ │ meta.json
│ │ layer_heights.npy
│
└───voxels
│ meta.json
│ voxel_maps.npy
Since Eyelab builds on the eyepy Python package, annotations stored by Eyelab in the .eye formt can be easily loaded with eyepy:
python
import eyepy as ep
ev = ep.EyeVolume.load("path/to/file.eye")
Development
Clone the repository, install python poetry and run poetry install after navigating into the project folder.
To run EyeLab run poetry run eyelab/main.py
Building the Windows executable
shell
poetry runpyinstaller --hidden-import imagecodecs --collect-submodules imagecodecs --name EyeLab -i icon.ico eyelab\main.py --onefile
Related Projects:
- eyepie: The Python package EyeLab uses in the back
- OCT-Converter: Extract raw optical coherence tomography (OCT) and fundus data from proprietary file formats. (.fds/.fda/.e2e/.img/.oct/.dcm)
Owner
- Name: MedVisBonn
- Login: MedVisBonn
- Kind: organization
- Repositories: 6
- Profile: https://github.com/MedVisBonn
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: EyeLab
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Olivier
family-names: Morelle
email: oli4morelle@gmail.com
orcid: 'https://orcid.org/0000-0001-6404-2726'
affiliation: >-
University of Bonn - Bonn-Aachen International
Center for Information Technology (b-it) /
University Hospital Bonn - Department of
Ophthalmology
identifiers:
- type: url
value: 'https://github.com/MedVisBonn/eyelab/tree/v0.4.2'
repository-code: 'https://github.com/MedVisBonn/eyelab/tree/v0.4.2'
abstract: >-
Annotation of eye imaging data such as OCT or
fundus images is a common task when building a
dataset for model training or evaluating clinical
studies. While annotation tools for individual
modalities exist, the integrated study of multiple
modalities is often hindered by the tedious process
of acquiring multi-modal annotations.
EyeLab is a multi-modal annotation tool designed to
ease the annotation process for eye imaging data,
and thereby accelerate advancements in ophthalmological
research.
keywords:
- OCT
- Fundus
- Annotation
- Drusen
- Layers
- Areas
- HEYEX
license: MIT
version: v0.4.2
date-released: '2022-03-31'
GitHub Events
Total
- Watch event: 6
Last Year
- Watch event: 6
Dependencies
- altgraph 0.17.2 develop
- argcomplete 1.12.3 develop
- atomicwrites 1.4.0 develop
- attrs 21.4.0 develop
- cfgv 3.3.1 develop
- colorama 0.4.5 develop
- commitizen 2.28.0 develop
- coverage 6.4.1 develop
- decli 0.5.2 develop
- distlib 0.3.4 develop
- filelock 3.7.1 develop
- future 0.18.2 develop
- identify 2.5.1 develop
- iniconfig 1.1.1 develop
- jinja2 3.1.2 develop
- macholib 1.16 develop
- markupsafe 2.1.1 develop
- nodeenv 1.7.0 develop
- pefile 2022.5.30 develop
- platformdirs 2.5.2 develop
- pluggy 1.0.0 develop
- pre-commit 2.19.0 develop
- prompt-toolkit 3.0.30 develop
- py 1.11.0 develop
- pyinstaller 4.10 develop
- pyinstaller-hooks-contrib 2022.7 develop
- pytest 6.2.5 develop
- pytest-cov 3.0.0 develop
- pywin32-ctypes 0.2.0 develop
- pyyaml 6.0 develop
- questionary 1.10.0 develop
- termcolor 1.1.0 develop
- toml 0.10.2 develop
- tomlkit 0.11.0 develop
- virtualenv 20.15.1 develop
- wcwidth 0.2.5 develop
- certifi 2022.6.15
- charset-normalizer 2.1.0
- cycler 0.11.0
- eyepie 0.6.7
- fonttools 4.33.3
- idna 3.3
- imagecodecs 2021.11.20
- imageio 2.19.3
- itk 5.2.1.post1
- itk-core 5.2.1.post1
- itk-filtering 5.2.1.post1
- itk-io 5.2.1.post1
- itk-numerics 5.2.1.post1
- itk-registration 5.2.1.post1
- itk-segmentation 5.2.1.post1
- kiwisolver 1.4.3
- matplotlib 3.5.2
- networkx 2.8.4
- numpy 1.23.0
- packaging 21.3
- pillow 9.2.0
- pyparsing 3.0.9
- pyside6 6.1.3
- python-dateutil 2.8.2
- pywavelets 1.3.0
- qimage2ndarray 1.9.0
- requests 2.28.1
- scikit-image 0.19.3
- scipy 1.8.1
- setuptools-scm 7.0.4
- shiboken6 6.1.3
- six 1.16.0
- tifffile 2022.5.4
- tomli 2.0.1
- typing-extensions 4.3.0
- urllib3 1.26.9
- commitizen ^2.20.4 develop
- pre-commit ^2.17.0 develop
- pyinstaller ^4.8 develop
- pytest ^6.2.5 develop
- pytest-cov ^3.0.0 develop
- PySide6 6.1.3
- eyepie ^0.6.7
- numpy >=1.22
- python >=3.8,<3.10
- qimage2ndarray 1.9.0
- requests ^2.27.1
- scikit-image ^0.19.1