1. A method for increasing the resolution of a digital image, the method implemented at least in part by a data processing system and comprising: a) receiving an input digital image of a scene, the input digital image includes an array of image pixels; b) interpolating a high-resolution image from the input digital image using an interpolation function, wherein the interpolated high-resolution image has a higher spatial resolution than the input digital image such that the interpolated high-resolution image has more image pixels than the input digital image; c) receiving a blur kernel associated with the interpolation function; d) initializing a candidate sharp high-resolution image; e) determining a plurality of differential images representing differences between neighboring pixels in the candidate sharp high-resolution image; f) determining a combined differential image by combining the differential images; g) updating the candidate sharp high-resolution image responsive to the interpolated high-resolution image, the blur kernel, the candidate sharp high-resolution image and the combined differential image, wherein the candidate sharp high-resolution image is updated using a Bayesian inference method that includes evaluating candidate sharp high-resolution images using an energy function; h) repeating steps e)-g) until a convergence criterion is satisfied; and i) storing the final candidate sharp high-resolution image in a processor-accessible memory system.