Rain Detection and Removal via Shrinkage-based Sparse Coding and Learned Rain Dictionary