/hdr-plus-swift

📸Night mode on any camera. Based on HDR+.

Primary LanguageSwiftGNU General Public License v3.0GPL-3.0

Burst Photo

Burst Photo is a macOS app written in Swift / SwiftUI / Metal that implements a simplified version of HDR+, the computational photography pipeline in Google Pixel phones. With Burst Photo, this processing can be applied to a burst of images from any camera, increasing dynamic range and reducing noise of the resulting image. You can read more about HDR+ in Google's paper Burst photography for high dynamic range and low-light imaging on mobile cameras.

If you are a researcher or you prefer Python/PyTorch, you can check out hdr-plus-pytorch.

Example

In the example, a burst of 51 images was taken at ISO 51,200 on a Sony A7S III camera. Exposure was adjusted to taste with equal settings for both images. Here is a comparison of a single image from the burst versus a merge of all the images.

To test motion-robustness, a burst with strong scene motion is evaluated. Here is a full comparison of results. The figure is similar to Figure 6 in Google's original publication. The input image was taken from Google's HDR+ dataset licensed under CC BY-SA.

For more examples, please visit burst.photo/gallery/.

Usage

To process a burst of RAW images, simply drag-and-drop them into the app. Only DNG files are supported by default - but if you download and install Adobe DNG Converter, Burst Photo will be able to convert most RAW formats in the background. The resulting image will be in the RAW-DNG format and can be further processed with the RAW converter of choice. You can read more at burst.photo/help/.

Download

You can download the app from the Mac App Store or as a GitHub release.

Features

  • DNG support
  • RAW support (requires Adobe DNG Converter to be installed)
  • simple temporal averaging
  • motion-robust merge in spatial domain (simplified)
  • motion-robust merge in frequency domain (similar to original publication)
  • Bayer sensor support
  • non-Bayer sensor support (beta)
  • support for bursts with bracketed exposure
  • optional exposure correction to improve tonality in the shadows
  • optional output with full 16 bit precision
  • preserves lens profiles
  • hot pixel suppression
  • multi-threaded RAW conversion and image loading
  • caching of converted DNGs both on disk and in-memory
  • align+merge running in pure Metal
  • native Intel, Apple Silicon support

List of Ideas

  • add super-resolution algorithm
  • add support for demosaic images (or foveon cameras)
  • fix progressbar getting stuck loading the first image

Please feel free to contribute to any of these features or suggest other features.

Acknowledgements

This product includes DNG technology under license by Adobe.