def image_file_to_string(filename, cleanup=cleanup_scratch_flag, graceful_errors=True): """Applies tesseract to filename; or, if image is incompatible and graceful_errors=True, converts to compatible format and then applies tesseract. Fetches resulting text. If cleanup=True, delete scratch files after operation.""" print "image_file_to_string", filename try: try: if "micr" in filename: print "image_file_to_string micr" call_tesseract_micr(filename, scratch_text_name_root) else: print "else of image_file_to_string micr" call_tesseract(filename, scratch_text_name_root) text = util.retrieve_text(scratch_text_name_root) except errors.Tesser_General_Exception: print "in except of image_file_to_string", errors if graceful_errors: im = Image.open(filename) text = image_to_string(im, cleanup) else: raise except Exception as e: print "errors", e finally: if cleanup: util.perform_cleanup(scratch_image_name, scratch_text_name_root) return text
def image_to_string(im, currentDir='', cleanup=cleanup_scratch_flag): """Converts im to file, applies tesseract, and fetches resulting text. If cleanup=True, delete scratch files after operation.""" ''' try: util.image_to_scratch(im, scratch_image_name) call_tesseract(scratch_image_name, scratch_text_name_root) text = util.retrieve_text(scratch_text_name_root) finally: if cleanup: util.perform_cleanup(scratch_image_name, scratch_text_name_root) return text ''' try: # Generate a unique random scratch_image_name and scratch_text_name_root import random scratch_text_name_root = str(random.randint( 0, 1000000000)) + '_delete_this' scratch_image_name = scratch_text_name_root + ".bmp" # Run the test of the code to make guess util.image_to_scratch(im, scratch_image_name) call_tesseract(scratch_image_name, scratch_text_name_root, currentDir) text = util.retrieve_text(scratch_text_name_root) finally: if cleanup: util.perform_cleanup(scratch_image_name, scratch_text_name_root) return text
def image_to_string(im, currentDir = '', cleanup = cleanup_scratch_flag): """Converts im to file, applies tesseract, and fetches resulting text. If cleanup=True, delete scratch files after operation.""" ''' try: util.image_to_scratch(im, scratch_image_name) call_tesseract(scratch_image_name, scratch_text_name_root) text = util.retrieve_text(scratch_text_name_root) finally: if cleanup: util.perform_cleanup(scratch_image_name, scratch_text_name_root) return text ''' try: # Generate a unique random scratch_image_name and scratch_text_name_root import random scratch_text_name_root = str(random.randint(0, 1000000000)) + '_delete_this' scratch_image_name = scratch_text_name_root + ".bmp" # Run the test of the code to make guess util.image_to_scratch(im, scratch_image_name) call_tesseract(scratch_image_name, scratch_text_name_root, currentDir) text = util.retrieve_text(scratch_text_name_root) finally: if cleanup: util.perform_cleanup(scratch_image_name, scratch_text_name_root) return text
def image_to_string(im, cleanup = cleanup_scratch_flag): try: util.image_to_scratch(im, scratch_image_name) call_tesseract(clear_image_name, scratch_text_name_root) text = util.retrieve_text(scratch_text_name_root) finally: if cleanup: util.perform_cleanup(scratch_image_name, scratch_text_name_root) return text
def image_to_string(im, cleanup=cleanup_scratch_flag): try: util.image_to_scratch(im, scratch_image_name) call_tesseract(scratch_image_name, scratch_text_name_root) text = util.retrieve_text(scratch_text_name_root) finally: if cleanup: util.perform_cleanup(scratch_image_name, scratch_text_name_root) return text
def image_to_string(im, cleanup = cleanup_scratch_flag): """Converts im to file, applies tesseract, and fetches resulting text. If cleanup=True, delete scratch files after operation.""" try: util.image_to_scratch(im, scratch_image_name) call_tesseract(scratch_image_name, scratch_text_name_root) text = util.retrieve_text(scratch_text_name_root) except Exception, e: util.log(e)
def image_to_string(im, cleanup = cleanup_scratch_flag): """Converts im to file, applies tesseract, and fetches resulting text. If cleanup=True, delete scratch files after operation.""" try: util.image_to_scratch(im, scratch_image_name) call_tesseract(scratch_image_name, scratch_text_name_root) text = util.retrieve_text(scratch_text_name_root) finally: if cleanup: util.perform_cleanup(scratch_image_name, scratch_text_name_root) return text
def image_to_string(im, cleanup=cleanup_scratch_flag): """Converts im to file, applies tesseract, and fetches resulting text. If cleanup=True, delete scratch files after operation.""" try: util.image_to_scratch(im, scratch_image_name) call_tesseract(scratch_image_name, scratch_text_name_root) text = util.retrieve_text(scratch_text_name_root) finally: if cleanup: util.perform_cleanup(scratch_image_name, scratch_text_name_root) return text
def image_to_string(im, cleanup = cleanup_scratch_flag, learn_file='eng'): """Converts im to file, applies tesseract, and fetches resulting text. If cleanup=True, delete scratch files after operation.""" scratch_text_name_root = "/tmp/%s_temp" % hashlib.md5(im.tostring()).hexdigest() scratch_image_name = scratch_text_name_root + ".bmp" try: util.image_to_scratch(im, scratch_image_name) call_tesseract(scratch_image_name, scratch_text_name_root, learn_file) text = util.retrieve_text(scratch_text_name_root) finally: if cleanup: util.perform_cleanup(scratch_image_name, scratch_text_name_root) return text
def image_file_to_string(filename, cleanup = cleanup_scratch_flag, graceful_errors=True): """Applies tesseract to filename; or, if image is incompatible and graceful_errors=True, converts to compatible format and then applies tesseract. Fetches resulting text. If cleanup=True, delete scratch files after operation.""" try: try: call_tesseract(filename, scratch_text_name_root) text = util.retrieve_text(scratch_text_name_root) except errors.Tesser_General_Exception: if graceful_errors: im = Image.open(filename) text = image_to_string(im, cleanup) else: raise finally: if cleanup: util.perform_cleanup(scratch_image_name, scratch_text_name_root) return text
def image_file_to_string(filename, cleanup=cleanup_scratch_flag, graceful_errors=True, language="eng"): """Applies tesseract to filename; or, if image is incompatible and graceful_errors=True, converts to compatible format and then applies tesseract. Fetches resulting text. If cleanup=True, delete scratch files after operation.""" try: try: call_tesseract( filename, scratch_text_name_root, language ) text = util.retrieve_text( scratch_text_name_root ) except errors.Tesser_General_Exception: if graceful_errors: im = Image.open( filename ) text = image_to_string( im, cleanup ) else: raise finally: if cleanup: util.perform_cleanup( scratch_image_name, scratch_text_name_root ) return text
def image_file_to_string(filename, cleanup = cleanup_scratch_flag, graceful_errors=True): """Applies tesseract to filename; or, if image is incompatible and graceful_errors=True, converts to compatible format and then applies tesseract. Fetches resulting text. If cleanup=True, delete scratch files after operation.""" try: try: call_tesseract(filename, scratch_text_name_root) text = util.retrieve_text(scratch_text_name_root) except errors.Tesser_General_Exception: if graceful_errors: im = Image.open(filename) text = image_to_string(im, cleanup) else: raise finally: if cleanup: util.perform_cleanup(scratch_image_name, scratch_text_name_root) return text # if __name__=='__main__': # text = image_file_to_string('/home/geoffrey/sandbox/risiti/media/receipts/2013/11/16/infemi-mission.png', graceful_errors=True) # print "fnord.tif contents:", text