bruno@cabado:~$ cat projects/octapp.md

← projects/

OCT Vision

Up (live demo)

  • Computer Vision
  • MedTech
  • Python
  • Tailwind CSS

Medical imaging web app for AS-OCT analysis, automating cornea-contact lens segmentation and clearance metrics to support safer fitting decisions.

Context

Contact lens fitting on irregular corneas can require precise interpretation of AS-OCT scans, but manual measurements are repetitive and sensitive to operator variation. OCT Vision was built to provide a faster and more consistent analysis workflow for clinical evaluation and training scenarios.

What I built

OCT Vision provides:

  • A browser-based analysis workspace to inspect scans and overlay detected boundaries
  • Automated extraction of cornea/contact lens curves from AS-OCT images
  • A metric dashboard with min/max/mean thickness, standard deviation, zonal analysis, and symmetry signals
  • Dual measurement modes (vertical and Euclidean clearance) to support different fitting perspectives
  • A demo-image library to quickly validate behavior across different case patterns

Technical approach

The backend uses Flask to orchestrate image analysis requests and return structured measurement payloads to the frontend. The computer-vision pipeline combines CLAHE enhancement, morphology filtering, Canny edge detection, contour grouping, and polynomial curve fitting to recover upper/lower surfaces. On top of these curves, geometric services compute vertical and minimum Euclidean distances point-by-point. The frontend (vanilla JavaScript + TailwindCSS) renders overlays, live stats, tabbed visualizations, and report export flow. Runtime packaging supports both local execution and containerized deployment with Gunicorn.

Outcome

The project evolved into a practical medtech prototype that turns complex scan interpretation into an interactive and reproducible workflow. It demonstrates how CV-based segmentation and clinically oriented metrics can be delivered in a lightweight web product, improving consistency and reducing manual analysis effort.

## Project gallery

OCT Vision starting page
OCT Vision demo modal with selectable OCT case images
OCT Vision analyzed workspace after selecting a demo OCT image
OCT Vision thickness profile tab with computed measurement curve
1/4OCT Vision starting page

bruno@cabado:~$ mail hi@brunocabado.com# I share work, research and product experiments in AI systems

$ send-message$ wget cv.pdf$ open linkedin$ open github

© 2026 Bruno Cabado · designed & developed in Galicia with Astro

↑↓ navigate · Enter open · Esc close

key bindings

0–8select window
n / pnext / previous window
ctalk to the agent pane
% / " or -split side by side / stacked (up to 3 panes, each shows a window)
Spacenext layout (side by side → stacked → main + stack → main + row)
qshow pane numbers, then press one to jump there
{ / }swap the focused pane with the main one
Shift+←↑↓→resize (main pane smaller / larger)
o · Ctrl+b ←↑↓→focus next pane · pane in that direction
zzoom the focused pane (again to restore)
xclose the focused pane (closing the main one promotes the split)
ttoggle theme (dark ⇄ latte) · :theme next cycles gruvbox, nord, tokyo, dracula
/ · Ctrl+ksearch the whole site
:command prompt
:set keys offdisable single-key shortcuts (the prefix still works)
Ctrl+bprefix — every key above also works after it; % " x and arrows need it

commands: search · select-window <name|n> · open <query> · ask <question> · split-window [-h|-v] [name] · kill-pane · zoom · swap-pane · layout · theme [mocha|latte|gruvbox|nord|tokyo|dracula] · ls · exit · help
agent: type /clear to reset the conversation