Motion-corrected image denoising for digital photography

Brendan Duncan



Abstract

An effective way to reduce noise in images involves taking a burst of snapshots and averaging them together. This requires that they be aligned, and that there is no motion or parallax across the images, otherwise this averaging causes motion blur and ghosting effects. In this paper, I introduce a new technique for both the alignment and averaging of a burst of photos of a single scene. The alignment is performed using multiple applications of SIFT and RANSAC to match both background and moving foreground objects in a scene. A weighted average is then calculated at each pixel using the bilateral filter to provide an estimate of the denoised result. This weighted average reduces the contribution from noisy pixels as well as from unmatched pixels resulting from motion across images.

Paper

pdfimg.jpg
Paper (11.1MB PDF)

Presentation

pptimg.jpg
Presentation (10.5MB PPT)

Code

Code (44KB ZIP)
This code requires OpenCV. It is not optimized and does not employ a fast implementation of the bilateral filter. It includes modified SIFT code from Rob Hess.

Moving foreground object images


Input images
images/uni1.jpg images/uni2.jpg images/uni3.jpg
images/uni4.jpg images/uni5.jpg images/uni6.jpg
 
Weights Result of algorithm
images/uniweights.png images/unires.jpg


Parallax images


Input images
images/para1.png images/para5.png images/para3.png
images/para4.png images/para6.png images/para2.png
 
Simple average Result of algorithm
images/paraavg.png images/parares.jpg



© Brendan Duncan 2010