Many conventional contrast enhancement techniques adopt a global approach to enhance the image. However, it is usually difficult to enhance all land cover classes appearing in the satellite image using these approaches, because local contrast information and details may be lost in the dark and bright areas. In this study, a three-stage algorithm based on fuzzy set theory is proposed to deal with the problem. First, the satellite image is transformed from gray-level space to membership space by fuzzy c-means clustering. Second, appropriate stretch model of each class is individually constructed based on corresponding memberships. Third, the image is transformed back to the gray-level space by merging stretched gray values of each class. Finally, the performance of the proposed scheme is evaluated qualitatively and quantitatively. The results show that the proposed method can successfully enhance satellite images and provide better contrast images for visual interpretation and visualization.