1. A method of indirectly decoding a barcode comprises: obtaining an image of a barcode using an optical sensor in a mobile computing device, the image comprising barcode marks and textual characters; recognizing distorted text within the image by performing optical character recognition on the distorted text to produce an optically recognized textual character; comparing the optically recognized textual character with the distorted text from which the optically recognized character was recognized to produce a degrading function; and deconvolving the degrading function from at least a portion of the image to improve the image quality.