A Windows application for extracting and processing images from various OCT (Optical Coherence Tomography) file formats used in ophthalmology.
- DICOM Export: Export OCT files to DICOM format with proper OPT modality headers
- Layer Segmentation: Export Heidelberg E2E files with layer segmentation overlay
- Segmentation JSON: Export layer boundary coordinates as JSON for analysis
- Improved Image Quality: Empty/background areas now render as pure black
- Bug Fixes: Fixed duplicate DICOM exports, improved error handling
Import from various OCT file formats:
- Heidelberg Engineering (.e2e)
- Zeiss Cirrus (.img)
- Topcon (.fds, .fda)
- Bioptigen (.oct)
- Optovue (.OCT)
- DICOM (.dcm)
- Image Formats: PNG, JPEG, TIFF
- DICOM Export: Full DICOM conversion with correct metadata headers
- Layer Segmentation Overlay: Visualize retinal layer boundaries on OCT slices
- Segmentation JSON: Export layer coordinates for external analysis
- Rotation (0°, 90°, 180°, 270°)
- Cropping with customizable parameters
- Contrast enhancement
- Brightness adjustment
- Process multiple files simultaneously
- Configurable export settings
- Progress tracking with cancellation support
- Intuitive file browser
- Image preview with navigation
- Detailed metadata display
- Frame selection with select all/invert options
- Windows 10/11
- Python 3.8+ (for source installation)
- 4GB RAM minimum (8GB recommended)
- 500MB free disk space
- Download the latest release from Releases
- Extract the ZIP file
- Run
OCT Extractor.exe
# Clone the repository
git clone https://github.com/linkmodo/oct-extractor.git
cd oct-extractor
# Install dependencies
pip install -r requirements.txt
# Run the application
cd src
python main.py- Click Import... to load OCT files
- Select a file from the list to view its contents
- Use the preview panel to examine OCT scans and fundus images
- Select frames to export using checkboxes
- Configure export settings (format, rotation, etc.)
- Click Export to save images
- Load OCT files (supports .e2e, .img, .fds, .fda, .oct)
- Click Export to DICOM... in the menu bar
- Select files to export
- Configure options (extract scan repeats, etc.)
- Choose output directory and export
When exporting E2E files with layer segmentation data:
- Enable Export with segmentation overlay for visual layer boundaries
- Enable Export segmentation as JSON for coordinate data
oct-extractor/
├── src/
│ ├── main.py # Application entry point
│ ├── controller/ # Application controllers
│ │ ├── export_controller.py
│ │ ├── file_controller.py
│ │ ├── frame_controller.py
│ │ └── image_controller.py
│ ├── model/ # Data models and processing
│ │ ├── oct_file_reader.py
│ │ ├── file_manager.py
│ │ └── image_processor.py
│ └── view/ # UI components
│ ├── export_dialog.py
│ ├── dicom_export_dialog.py
│ ├── batch_dialog.py
│ └── ...
├── requirements.txt # Python dependencies
└── README.md
- OCT-Converter - OCT file format parsing
- PyQt5 - User interface
- NumPy - Numerical operations
- Pillow - Image processing
- h5py - HDF5 file support
- Matplotlib - Visualization
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- OCT-Converter by Mark Graham for OCT file format support
- Windsurf for AI-assisted development
- The Python community for excellent open-source tools
Created by Li Fan
Repository: https://github.com/linkmodo/oct-extractor