Skip to content

martin-marek/hdr-plus-swift

Repository files navigation

Burst Photo

This is a macOS app written in Swift / SwiftUI / Metal that implements a simplified version of HDR+, the computational photography pipeline in Google Pixel phones. 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, I suggest you check out hdr-plus-pytorch.

Example

I took a burst of 51 images at ISO 51,200 on Sony A7S III and boosted it by +1.35EV. Here's a comparison of a single image from the burst vs. a merge of all the images.

alt text

To test motion-robustness, I compared a raw image, output from the app using Robustness set to High, and output from the app using Robustness set to Low. You can compare my results to Google's by opening Figure 6 in their paper. Image taken from Google's HDR+ dataset licensed under CC BY-SA.

alt text

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

Usage

To process a burst of DNG images, simply drag-and-drop them into the app. You can read more at burst.photo/help/.

alt text

Download

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

Features

  • Bayer DNG support
  • robust merge
  • mutli-threaded image loading
  • align+merge running in pure Metal
  • full ARM / x86 support (in main brach, not yet released)

TODO

  • preserve lens profiles
  • super-resolution
  • support for non-Bayer sensors (Fuji...)
  • fix progressbar getting stuck loading the first image
  • 32-bit output - how can this be achieved in Adobe DNG SDK?

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

Acknowledgements

This product includes DNG technology under license by Adobe.