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; optically recognizing a textual character; identifying an image degrading characteristic from the textual character; and compensating for the image degrading characteristic to render previously undecodable barcode marks decodable.