1. An array camera, comprising: a plurality of cameras that capture images of a scene from different viewpoints; memory containing an image processing pipeline application; wherein the image processing pipeline application direct the processor to: capture a set of images using a group of cameras from the plurality of cameras; receive (i) an image comprising a plurality of pixel color values for pixels in the image and (ii) an initial depth map corresponding to the depths of the pixels within the image, wherein the initial depth map is generated using the set of images; and regularize the initial depth map into a dense depth map using pixels for which depth is known to estimate depths of pixels for which depth is unknown by using affine combinations of the depths of nearby known pixels to compute depths for the unknown pixel depths, wherein regularizing the initial depth map into the dense depth map further comprises performing Laplacian matting to compute a Laplacian L, wherein the Laplacian matting is optimized by solving a reduced linear system for depth values only in unknown regions; wherein regularizing the initial depth map into the dense depth map further comprises: finding an approximate dense depth map using a diffusion process where L D is a diffusion Laplacian constructed such that each pixel is connected to a plurality of its surrounding neighbors using spatial proximity; pruning the Laplacian L based upon the approximate dense depth map; and detecting and correcting depth bleeding across edges by computing a Laplacian residual R based upon the pruned Laplacian and removing incorrect depth values based on the Laplacian residual R; and using the dense depth map to perform image-based rendering.