DEMO 1: Least Squares Shape from Defocus

Geometric Blind Deconvolution

Demonstration of the geometric blind deconvolution method for shape from defocus

clear all, close all

Generate defocus operators

Compute a set of orthogonal operators with rank 49 for a fixed number of depth levels

Hp = generate_operators(7,49);
Computing orthogonal operators (Gaussian kernel)
50 Levels

Load defocused images

Load images I1 and I2 (far and near focused images)

load DataSet

Estimate depth

Perform an exhaustive search for the minimum of the residuals obtained by applying the orthogonal operators to each patch of the input images

Depth = estimate_depth(I1,I2,Hp,1);
Computing depth levels
50 Iterations

Optional smoothing

Eliminate undesired estimation errors via median filtering

FilteredDepth = mediansmoothing(Depth,1);