Most traditional shape-from-shading algorithms assume that an image contains only a single object with Lambertian surface and uniform albedo values. These algorithms perform poorly on images with nonuniform albedo values. In this paper, we first discuss a linear shape- from-shading method that employs discrete approximations for the surface normal using finite differences of the depth and linearizes the reflectance function in depth directly. Next we present a simple method to cancel the effect of albedo variation. In our approach, we first estimate the albedo values for each pixel, and segment the scene into regions with uniform albedo values. However, the estimated albedo values are not accurate at the points near edges, so we apply a modified median filter to improve the result. Then we adjust the intensity value for each pixel by dividing by the corresponding albedo value before applying the linear shape-from-shading method. Experimental results are presented for several synthetic and actual images.