1. A camera array, comprising: a plurality of cameras configured to capture images of a scene from different viewpoints, wherein at least one camera in the plurality of cameras is a monochrome camera and at least one camera in the plurality of cameras includes a Bayer color filter; a processor; and memory containing an image processing application; wherein the image processing application stored in memory directs the processor to: separately configure the imaging parameters for each of the plurality of cameras; read out image data from the plurality of cameras including a set of images captured from different viewpoints; store the image data in the memory; select a reference viewpoint relative to the viewpoints of the set of images captured from different viewpoints; and determine depth estimates for pixel locations in an image from the reference viewpoint, where a depth estimate for a given pixel location in the image from the reference viewpoint is determined by: determining the similarity of pixels that correspond to the given pixel location in the image from the reference viewpoint based upon expected disparity at a plurality of depths, where similarity of pixels across different spectral channels is evaluated based upon similarity of neighborhoods of pixels containing the corresponding pixels; and selecting the depth from the plurality of depths at which corresponding pixels have the highest degree of similarity as a depth estimate for the given pixel location in the image from the reference viewpoint.