The human visual system has the capacity to infer the shape of a three-dimensional object using only two-dimensional information. One of the cues the human visual system uses to perform this inference is shading information. An object's shading is its variation in brightness over a given domain. Computer algorithms have been developed that recover the three-dimensional shape of objects depicted in images. These algorithms are called shape-from-shading algorithms. Most shape-from-shading algorithms rely on idealistic conditions. They usually assume orthographic projection, a distant point light source, and Lambertian reflectance. It is known that most real surfaces are neither perfectly diffuse (Lambertian) nor ideally specular (mirror-like); however, most shape-from-shading algorithms assume Lambertian reflectance. It is necessary to develop new techniques to recover the shape of objects whose surfaces are not necessarily Lambertian. In this thesis two algorithms are proposed that c...