Example #1
0
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
Example #2
0
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
Example #3
0
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
Example #4
0
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
Example #5
0
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
Example #6
0
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)
Example #7
0
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
Example #8
0
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
Example #9
0
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
Example #10
0
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
Example #11
0
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
Example #12
0
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