1. An apparatus for coding images comprising: a light-sensitive sensor configured to detect visible light representing a scene; a coded lens array including a plurality of lenses arranged in a first dimension and a second dimension and coupled together to form a two dimensional coded pattern cyclically repeated at least once in both dimensions, a plurality of baffles arranged in front of or behind each lens of the plurality of lenses to establish a maximum angle at which visible light of the scene can pass through the coded lens array and reach the light-sensitive sensor, the baffles causing baffle attenuation resulting in a different level of intensity of the visible light at different regions of the light-sensitive sensor; wherein the coded pattern is arranged to cause an overlapping of images projected from lenses onto the light-sensitive sensor; an analog to digital converter electrically coupled to the light sensitive sensor, the A/D converter to convert an analog signal representing visible light detected by the light-sensitive sensor to a digital signal; and an image reconstruction processor to process the digital signal and generate a reconstructed image of the scene, the reconstruction processor including program code and/or circuitry to compensate for the baffle attenuation by adjusting intensity at different regions of the reconstructed image.