Water level model is an effective method in density-based classification. To improve the result, we use biased sampling, local similarity and popularity as preprocessing, and then apply the water-level model for classification. Biased sampling is to get some information about the global structure. Similarity and local density are mainly used to understand the local structure. In biased sampling, images are divided into many l*l patches and a sample pixel is selected from each patch. Similarity at a point p, denoted by sim(p), measures the change of gray level between point p an its neighborhood N(p). Besides using biased sampling to combine spectral and spatial information, we use similarity and local popularity in selecting sample points. A sample point is chosen based on the minimum value of sin(p) + [1-P(p)] after normalization. The selected pixel is a better representative, especially near the border of an object. Kernel estimators are employed to obtain smooth density approximation. The water-level model is relatively easy and effective when the density function is smoothed. To make it more effective in other cases, one has to deal with small spikes and bumps. To get rid of the small spikes, we establish a threshold ê[f(P1) - f(P 2)*(P1-P 2) ê > c*l*l , where c is a constant, P1 is a local maximum point to be tested and P2 is the nearest local minimum form P1. The condition is only related to the size of the patches l*l. After using the average filter, we choose l to be the square root of the fifth peak if it is between 5 and 20, otherwise set l = 10. Preliminary experiments have been conducted using proposed methods with different values of the constant c in the threshold condition. Experimental results are provided.