1. An image processing method comprising: searching for areas matching each other between a plurality of input images, which comprise a reference image and a target image, to thereby obtain an area of the reference image and an area of the target image matching each other; generating hierarchical image structures having levels corresponding to different, respective resolutions, with a higher of the levels corresponding to a lower of the different resolutions, the hierarchical image structures including a first hierarchical image structure having a first plurality of hierarchical images, respectively having the different resolutions, for the area of the reference image, and a second hierarchical image structure having a second plurality of hierarchical images, respectively having the different resolutions, for the area of the target image; for each of the levels of the hierarchical image structures from a highest to a lowest of the levels, performing image processing by searching for a first block area, of a hierarchical image of a current level of the first plurality of hierarchical images, and a second block area, of a hierarchical image of the current level of the second plurality of hierarchical images, that match each other, the searching for block areas performed such that when the current level is lower than the highest of the levels, the searching for block areas is based on a result of image processing performed for a previous higher level, determining weighted values of pixels in the block areas based on an amount of similarity between pixels in the hierarchical images of the current level of, respectively, the first plurality and second plurality of hierarchical images, and determining pixel values based on the weighted values; generating, using at least one processor, an output image by using the pixel values determined according to the image processing performed for the levels of the hierarchical image structures.