Shadow detection and removal is an important task when dealing with outdoor images. Shadows cast by objects together with the objects form distorted figures. Furthermore, separate objects can be connected through shadows. Both can confuse object recognition systems. In this paper, an effective method is presented for detecting and removing shadows from foreground figures. We assume that foreground figures have been extracted from the input image by some background subtraction method. A figure may contain an object with or without shadow or multiple objects connected by shadows. To begin, we decide whether there are shadows in a given figure. A method based on illumination assessment is developed for this purpose. Once shadows have been confirmed existing in the given figure, their locations and orientations are estimated. A number of points are then sampled from the shadow candidates, from which attributes of shadow are computed. We do not remove shadows simply based on the computed attributes. The reason is twofold. First, the distribution of intensity within a shadow is not uniform. Second, shadows can be divided into cast and self shadows; only cast shadows are to be removed. To deal with the first issue, we recover object shapes progressively instead of directly removing shadows. The second issue is resolved based on the observation that self shadows possess denser distributions of texture than cast shadows in our application. A number of experiments have been performed. The results revealed the applicability of the proposed technique.