Skip to content

feat: 16-bit TIFF viewer with composable enhancement pipeline#1

Merged
ZBDat merged 1 commit into
mainfrom
copilot/implement-tif-viewer-tool
Apr 10, 2026
Merged

feat: 16-bit TIFF viewer with composable enhancement pipeline#1
ZBDat merged 1 commit into
mainfrom
copilot/implement-tif-viewer-tool

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 10, 2026

Implements a full-stack tool for viewing and interactively processing 16-bit grayscale TIFF images with a composable, reorderable enhancement pipeline.

Backend — FastAPI + Python (backend/)

  • POST /api/upload — reads 16-bit TIF via tifffile, stores as float32 ndarray, returns file_id
  • POST /api/process — applies ordered enhancement pipeline, returns base64 PNG + 256-bin histogram
  • GET /api/image/{file_id} / GET /api/histogram/{file_id} — individual render/histogram endpoints
  • processors/histogram_eq.pyskimage.equalize_hist on float-normalised 16-bit data
  • processors/local_contrast_norm.py(x − μ_local) / (σ_local + ε) via Gaussian blur, rescaled to [0, 65535]

Frontend — Vue 3 + Vite (frontend/)

  • EnhancementPanel — drag-to-reorder pipeline (vuedraggable), add from dropdown, remove with ×
  • ParameterPanel / SliderRow — LCN exposes Sigma (0.30–32), Epsilon (log-scale, 1e-4–0.5), Output Gain (0–4); changes debounced 300 ms before re-processing
  • Histogram — Chart.js bar over full 16-bit range; tooltip: Value X / Distribution Y
  • ImageViewer — scroll-to-zoom, drag-to-pan, fit-to-screen
  • Toolbar — file open, zoom controls, annotation mode placeholders
  • Vite dev proxy: /apihttp://localhost:8000

@ZBDat ZBDat marked this pull request as ready for review April 10, 2026 02:07
@ZBDat ZBDat merged commit 9e9a0e6 into main Apr 10, 2026
1 check passed
@ZBDat ZBDat deleted the copilot/implement-tif-viewer-tool branch April 14, 2026 01:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants