1. A method for generating a three-dimensional image of an object, comprising: receiving a plurality of blurred two-dimensional images captured using an optic system; computationally generating, by a processor, a plurality of simulated blurred images corresponding to one of the plurality of blurred two-dimensional images, each of the plurality of simulated blurred images using a different standard deviation of a blur function distribution on the one of the plurality of blurred two-dimensional images, each standard deviation corresponding to a respective depth; determining, by a processor, a z-axis registry of a point spread function for the optic system, the determining comprising: using best fit parameters to minimize mean square error between the plurality of blurred two-dimensional images and the plurality of simulated blurred images to provide a depth estimation for a given blur of each of the plurality of simulated blurred images; and correlating each of the depth estimations to a magnitude of blur of each of the plurality of simulated blurred images and recording in the z-axis registry; receiving a blurred two-dimensional object image; deconvoluting, using a processor, the blurred two-dimensional object image using the point spread function for the optic system, to generate a stack of non-blurred two-dimensional images, each non-blurred image having a corresponding z-axis registry depth estimation; and constructing a three-dimensional image from the stack of two-dimensional images using the corresponding z-axis registry depth estimations.