1. A computer-implemented method for recognizing images, the method comprising: receiving, by a computer, an image query; determining, by the computer, a recognizability score based at least in part on the image query; determining, by the computer, a first recognition algorithm based at least in part on the recognizability score; extracting, by the computer, image features from the image query; performing, by the computer, a first recognition by comparing the extracted image features to a first set of image data using the first recognition algorithm to identify a first set of recognition results that are substantially pristine images, each recognition result including at least a portion of a matching document and a location of the image query in the portion of the matching document; performing, by the computer, a second recognition by comparing the extracted image features to a second set of image data to identify a second set of recognition results, the second set of image data being the first set of image data that are modified by a first level of blur; performing, by the computer, a third recognition by comparing the extracted image features to a third set of image data to identify a third set of recognition results, the third set of image data being the first set of image data modified by a noise factor; and combining, by the computer, the first set of recognition results from performing the first recognition, the second set of recognition results from performing the second recognition and the third set of recognition results from performing the third recognition by merging and sorting the first set of recognition results, the second set of recognition results and the third set of recognition results based on a confidence value of each recognition result.