In computer graphics and, more specifically, computer vision applications, photometric stereo is the process of creating a three-dimensional (3D) model or representation of a two-dimensional (2D) image based on the way the objects in the image reflect or refract light. When a photometric stereo algorithm is applied to an object, there must be more than one source image available for analysis. For each of the source images to be used, the object generally should appear in a static position, while the light source is moved to reveal different aspects of the surface of the object. Simple methods of photometric stereo imaging must know the location of the lights in relation to the object, and they work the best when the object is made from a single material so the highlights and shadows can be predictably measured. Much more advanced algorithms and techniques do not require as much information in advance and can make several assumptions, or even interpolate surfaces, to complete a partially obstructed image.
The basic concept of photometric stereo involves taking several images of an object with the light source in each image moved around the object while the object remains in the same location. By measuring exactly how the shadows and highlights fall on the surface of the object in each image, the surface normals — the direction a surface faces — can be calculated. After compiling information on the normals of the measurable areas of an object across a series of 2D images, a 3D model of the object can be constructed.
Factors such as the depth of the shadows and intensity of the highlights help to determine the varying heights of the surface topography. Objects that have a glossy surface are the easiest to measure with photometric stereo, while objects that are made from a material with more subtle shadows, such as soft fabric, can be more difficult. An object that has a highly reflective surface, such as polished chrome, can present some problems without proper image adjustments, because the reflections can give false results. The algorithms work best when there is only a single light source and no projected shadows, as opposed to an area light, multiple light sources or a light that is shining through a window or other opening.
There are several uses for photometric stereo techniques. In real-time computer vision processing, it can be used to determine the depth of objects within a scene. It also can be used to create accurate 3D models of objects in photographs for historical, archival or analytical purposes.