In order to solve the problem of car number plate detection under a complex background, an algorithm of multi-layer weak filter is proposed in this paper. The first weak filter will remove the same background color as non-license plate. The second weak filter will strengthen the pixels of background region around car number plate and make the image of marginal density. The third weak filter will remove these non-license plate regions in the image of marginal density based on regional area, shape and background color. As documented in the experiments of 830 car number plate, the algorithm is little sensitive to intense illumination and contaminated car number plate. The error rate of car number plate detection using the algorithm is 7.74%, which is lower than that one of the two methods of color characteristics detection and texture characteristics detection. The algorithm improves accuracy of the car number plate detection.