There are various face recognition techniques in literature, which are faced with challenges such as occlusion, pose variation, illumination, and facial expressions. Existing methods often perform well when their database is small, or multiple samples per person exist. However, face recognition methods with just one reference sample per person may not work well, especially on a large database. To address this problem, this paper proposes a scheme to extract features from facial images. Using Non-negative Matrix Factorization (NMF), basic features are extracted from the face structure. The matrix of images is decomposed into basis matrix (W) and weight matrix (H). The basis matrix contains several versions of mouths, noses and other facial parts, where the various versions are in different locations or forms. Hence, to recognize a facial image in the database, searching is done on the weight matrices feature set. In this research, to more precisely form the structural elements, a separate basis matrix is constructed for the upper and lower parts of the facial images from the database. Also the images are enhanced using pre-processing techniques including histogram equalization, image intensity, and contrast limited adaptive histogram. The FERET database with 990 single images per person was used to evaluate the proposed method. Experimental results show that the proposed method can achieve a recognition rate close to 93%.