Skip to main content

OpenFocus

OpenFocus

Every focus plane. One all-in-focus image.

Eight fusion algorithms, three registration modes and a source-locked retouch workspace for macro, microscopy and industrial stacks. 16-bit end to end, a headless CLI, and a UI in twelve languages.

Release Stars License: MIT Python 3.10+

Windows 10/11 macOS Apple Silicon Linux CLI PyPI

Download · Docs · Changelog · DOI

English · 简体中文 · 日本語 · Español · Deutsch · Français · Русский · 한국어 · Português · Italiano · Nederlands · Polski

OpenFocus interface

📢 News

Earlier releases are in the Changelog.

Features

AI fusion: StackMFF V3

The default method classifies every pixel by its most probable source frame with a neural network. On the same registered stack it keeps letter edges crisper and surfaces cleaner than Guided Filter (Laplacian sharpness 27.1 vs 28.5), and it leads every method on PSNR and SSIM against synthetic ground truth — with fewer ghost pixels than any classical algorithm.

StackMFF V3 → · Benchmark →

StackMFF V3 versus Guided Filter on the same stack

Wipe compare

Drag the divider across a frame and the fused result to see exactly what the blend changed — alignment drift, haloed edges and lost detail are visible at a glance, at any zoom.

Manual →

A/B wipe between a source frame and the fused result

Method comparison

Render every method once, inspect them side by side at a shared crop, then adopt the winner as a new output or copy its parameters back to the main window.

Side-by-side comparison of eight fusion methods

Depth map & 3D

Per-pixel focus position from five focus measures, with research colour maps, physical Z calibration from TIFF metadata, and a textured OBJ export of the surface.

Depth map and 3D surface of the same stack

Source-locked retouch

Paint from the frames that actually produced the result: shared zoom and pan, a source-frame slider, soft brush, restore brush, whole-stroke undo and a "not exported" guard for new pixels.

Retouch workspace with source frame and result

Batch processing

Point it at a folder of stacks, choose a method and a destination, and walk away. Align-only runs write one folder per stack; fusion runs write the fused image and list exactly that.

Batch processing dialog

Publication scale bars

Calibrated from TIFF metadata or typed in, drawn with the real font at the real length, and burned into every export — single images, stacks, multi-page TIFF, GIF and batch output alike. A bar that cannot fit legibly says so instead of printing a length it does not draw.

Manual →

Scale bar dialog with a live preview

Captions and labels

Keep a managed list of captions, each with its own scope (source, aligned stack or a specific output), frame range and style. The preview and every export use the same target and frame number, so {value} reads the same in Save, Save As, drag-out and Export All.

Label manager with a live preview

Also in the box:

  • Focus-stack workflow — stack browser, sharpness curve, quick preview, ROI render, and per-method settings remembered across restarts.
  • Microscopy-ready — 16-bit end to end, µm/px from TIFF metadata, dust-map flat-field correction, multi-page TIFF Z-stacks, textured OBJ export.
  • Headless CLI — the same pipeline as openfocus, with batch mode, --dry-run, --resume and JSON output for scripting.
  • Projects and recovery — .ofproj sessions, crash auto-recovery, undo/redo across stack edits and annotations.
  • Twelve UI languages — English, 中文, 日本語, Español, Deutsch, Français, Русский, 한국어, Português, Italiano, Nederlands, Polski. Auto-detected from the system locale; a new language is one locales_<code>.py file.
  • Light on memory — the neural stack is loaded only when the neural method is used, so a classical-method session idles around 110 MB instead of 260 MB.

⬇️ Install

No setup needed — grab a build from the Releases page:

Platform File Type
Windows 10/11 (64-bit) OpenFocus-*-setup.exe Installer (recommended)
Windows 10/11 (64-bit) OpenFocus-*-windows-x64.zip Portable (unzip and run)
macOS Apple Silicon (M1–M4) OpenFocus-*-macos.dmg Disk image (drag to Applications)
macOS Apple Silicon (M1–M4) OpenFocus-*-macos-arm64.zip Portable (unzip)

The app is unsigned, so the first launch may show a security prompt: Windows SmartScreen → "More info" → "Run anyway" (the first start may take 30–60 s); macOS right-click → Open, or run xattr -cr /Applications/OpenFocus.app in Terminal.

💻 Command Line Usage

Or install the CLI on Windows, macOS and Linux — the same pipeline, no GUI stack:

pip install openfocus
openfocus -i ./stack_folder -o ./result/fused.png

The AI model, its weights, HEIC and camera-RAW decoding are all in that single install. dtcwt is skipped on Python 3.13+, where the DTCWT entry stays disabled with a tooltip.

Community & Support

Developing

Run from a checkout:

conda create -n openfocus python=3.10
conda activate openfocus
pip install -r requirements.txt
python main.py

Packaging with PyInstaller: docs/BUILD_COMMANDS.md.

⭐ Star History

Star History Chart

Metadata

Release files for openfocus 1.69.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openfocus 1.69.0
File Size Uploaded Provenance
openfocus-1.69.0.tar.gz 1.2 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for openfocus 1.69.0
File Interpreter ABI Platform
openfocus-1.69.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.3 MB

Release files / openfocus-1.69.0.tar.gz

Download URL openfocus-1.69.0.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
4eca192375981cb9d6edea53537c0d9e1761dc386a97a80ab9d6a90d9da57898
BLAKE2b-256 checksum
How to use checksums
7c0714d8b0889749a4bed2a2aff5ae7e12c6db37afc6951c5041f5c0a973dcc5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / openfocus-1.69.0-py3-none-any.whl

Download URL openfocus-1.69.0-py3-none-any.whl
Size 1.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
7fd489a46561a90e0814bb599fdc2fbf08b9c71c689faf54d747862589bbe3ea
BLAKE2b-256 checksum
How to use checksums
f1ff6def9c77d5502488f0ef3165929a89e443352cf3e223e9fc7d7762ff1ced
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Security for openfocus 1.69.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page