To solve the problem of image smoothness and fuzzy edge texture information after image denoising, proposed a new image denoising method based on dictionary learning. Firstly, the external cycling principal component analysis reduces the dimensions of image data while retaining the main data and constructing the learning dictionary. Secondly, used the fuzzy c-means structure clustering method internally to implement structural constraints on learning dictionary training, which considered the internal structure of image pixels. Then, the learning dictionary under the double constraints of sparse and structural clustering is obtained by internal and external iteration. Finally, the sparse representation coefficient and redundancy dictionary are obtained by the orthogonal matching pursuit method and alternate direction multiplier method, and the denoised images are estimated and updated according to sparse coding theory. Using the grayscale image from Set12 data set, color image from the CBSD68 data set, real noise from RENOIR data set, and texture image from USC-SIPI data set. The experimental results show that compared with the model-based algorithms (KSVD, ISKR, EPLL, NCSR, and LR-GSC) and the learning-based algorithms(DnCNN, IRCNN, and FFDNet), the proposed algorithm preserves the edge and texture information of the image better, and achieves better subjective visual effects and objective numerical results, especially for the image with complex structure and content, and the running time is much less than learning-based algorithms.