In this study, the authors propose a novel algorithm for removing complex shadows from textured surfaces within a single image. Previous shadow removal methods have attempted to solve this problem under a range of criteria, such as the type and number of light sources and shadow structure. Some methods require that the shadow umbra and penumbra be well defined. They have been shown to work best when the umbra is relatively large and when the penumbra is of a limited size and shape. However, these methods can fail if the shadow shape or form diverges from the norm. Many methods also require user intervention to locate whole or parts of the shadow. The authors propose a flexible shadow removal model which is capable of functioning without these limiting assumptions, or the need for user intervention. It is also capable of dealing with shadows cast on a wide range of textured surfaces. It uses a directional differential filter along with directional smoothing to find the shadow and a thin plate reconstruction model to remove shadows from an image surface. Results have shown that the proposed algorithm generates high-quality shadow-free images over a range of scenarios, such as multiple light sources, occlusions and textures.