We introduce a method for segmenting surfaces of three-dimensional objects using two images of the object obtained from the same viewpoint under different illumination conditions. The method allows the surface spectral reflectance to vary from point to point and requires only weak conditions on the uncalibrated illumination configuration. The algorithm is based on the local recovery of an illumination change matrix that depends on surface geometry but not on the spectral reflectance of the surface. We show that for typical sensor noise levels, this technique can be used for the reliable detection of surface orientation changes of a few degrees. This approach can be generalized using a calibrated setup to recover a dense set of surface orientation estimates from two images. We present a set of experiments demonstrating the capability of the algorithm for the segmentation of planar surfaces in the presence of spatially varying spectral reflectance. © 1998 Society of Photo-Optical Instrumentation Engineers.