20. The non-transitory computer-readable storage medium of claim 15 , wherein the instructions, when executed by the processor, further cause the processor to separately recognize the text in the first output image and in the binary output image based upon whether pixel values for pixels are above or below a threshold value.
15. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to: receive an input image that includes at least one image variation; filter and segmenting the input image; select regions within the filtered and segmented input image having connected components; create a mask corresponding to the regions of connected components, the mask including bounding boxes that at least partially enclose corresponding regions of the connected components; intersect the filtered and segmented input image with the mask to produce a first output image; separately process the filtered and segmented input image corresponding to the mask to create a binary output image; separately recognize text in the first output image and in the binary output image using an optical character recognizer; and combine the separately recognized text from the first output image and from the binary output image to produce a single output.