1. A method for providing a specular reflectivity from an input image comprising: receiving the input image at a computer device, wherein the input image comprises a red channel, a green channel, and a blue channel for each pixel in the input image; computing a cluster analysis on the input image that clusters each pixel in the input image into clusters having similar chromaticity, wherein the cluster analysis determines a chromaticity index for each pixel and a chromaticity vector that indicates an average chromaticity of each cluster represented by the chromaticity index; determining, from an objective function, the specular reflectivity of the input image, wherein the objective function includes a function that specifies that the specular reflectivity is smooth across edges within the input image, and wherein the objective function additionally specifies that a diffuse reflectivity either i) is relatively constant within each cluster or ii) changes sharply between clusters; and providing the specular reflectivity of the input image.