The presence of shadows in images significantly affects the performance of many computer vision tasks and visual processing applications, such as object tracking, object classification, and behavior recognition. Most methods have been designed to detect shadows in specific situations, but they often fail to distinguish shadow points from the foreground object in many problematic situations, such as chromatic shadows, non-textured and dark surfaces, and foreground-background camouflage. In this paper, we propose a new feature-based image patch approximation and multi-independent sparse representation technique to tackle these environmental problems. In this method, two illumination-invariant features-binary patterns of local color constancy and light-based gradient matching-are introduced, along with the intensity-reduction histogram. These features are extracted from image patches and are used to construct two over-complete dictionaries for objects and shadows, respectively. Given a new image patch, its best approximation for a number of iterations is found from each dictionary. For each iteration, an independent class assignment is performed by finding its distances from the reference dictionaries. The patch is then assigned to a class based on its probability of occurrence. The proposed framework is evaluated on common shadow detection data sets, and it shows improved performance in terms of the shadow detection rate and discrimination rate compared with the state-of-the-art methods.