Rain removal from an image is a challenging problem since no motion information can be obtained from successive images. In this work, an input image is first decomposed into low-frequency part and high-frequency part by using guided image filter. So that the rain streaks would be in the high-frequency part with non-rain textures, and then the high-frequency part is decomposed into a 'rain component' and a 'non-rain component' by performing dictionary learning and sparse coding. To separate rain streaks from high-frequency part, a hybrid feature set is exploited which includes histogram of gradient (HoG) and difference of depth (DoD). With the hybrid feature set applied, most rain streaks can be removed; meanwhile, non-rain components can be enhanced. Compared with the state-of-the-art method , our proposed approach shows that not only the rain components can be removed more effectively, but also the visual quality of restored images can be improved.