Image noise removal is the first step in image processing, pattern recognition, and computer vision. A novel algorithm is proposed to remove noise on images based on anisotropic diffusion and subpixel approaches. Firstly, the subpixel difference of an image is defined and the Euler-Lagrange equation is solved. Then, the diffusion equation is solved numerically using an iterative approach. Finally, the noise is removed after the diffusion procedure is finished. The experiments show that the proposed algorithm yields better signal-to-noise ratio and has no blocky effect and less generated speckle noise in the results than the other methods do. In addition, it is easy to implement, takes less iterations, and has low computational complexity.