This paper proposes a facial expression recognition algorithm, which automatically detects and segments the face regions of interest (ROI) such as the forehead, eyes and mouth, etc. Proposed scheme initially detects the image face and segments it in two regions: forehead/eyes and mouth. Next each of these regions is segmented into N × M blocks which are characterized using 54 Gabor functions that are correlated with each one of the N × M blocks. Next the principal component analysis (PCA) is used for dimensionality reduction. Finally, the resulting feature vectors are inserted in a proposed classifier based on clustering techniques which provides recognition results closed to those provided by the support vector machine (SVM) with much less...