1. An image processing apparatus comprising: a diffuse reflection image generation unit configured to generate a diffuse reflection image by using a base image having a diffuse reflection component as a main component, the diffuse reflection image approximating an input image; a difference image generation unit configured to generate a difference image between the diffuse reflection image and the input image; a reflection component judgment unit configured to judge whether each pixel on the input image is of a specular reflection area or not, by using a pixel value of a corresponding pixel on the difference image; a pixel value replacement unit configured to modify or replace the pixel value of the each pixel judged to be of the specular reflection area, by using a pixel value of a corresponding pixel on the diffuse reflection image, thereby obtaining a replaced input image; a difference image correction unit configured to correct the pixel value of the corresponding pixel on the difference image, which corresponds to the each pixel judged to be of the specular reflection area, thereby obtaining a corrected difference image; a weight calculation unit configured to calculate a weight of a weighted smoothing filter, and to compare a pixel value of a noted pixel with a pixel value of a pixel surrounding the noted pixel in the corrected difference image to assign to the surrounding pixel a weight that decreases with an increase of the difference value; a first filter unit configured to generate a smoothed image by applying the weighted smoothing filter to the replaced input image; and a second filter unit configured to obtain a feature image by dividing a pixel value of each pixel of the replaced input image by a pixel value of corresponding pixel of the smoothed image.