1. A method comprising: receiving, from an image capture device, a single input image I comprising a plurality of pixels; modeling a surface radiance vector J of the input image I as a product of a surface albedo coefficient R and a shading factor l; determining, by a processor for each of the plurality of pixels, a value of a transmission t of the pixel, such that a covariance C Ω between the transmission t and the shading factor l is minimized; and recovering, by the processor, the surface radiance vector J based at least in part on the determined value of the transmission t for each pixel.