def extract_image_data(data, languages=None): """Extract text from a binary string of data.""" tessdata_prefix = get_config('TESSDATA_PREFIX') if tessdata_prefix is None: raise IngestorException("TESSDATA_PREFIX is not set, OCR won't work.") languages = get_languages_iso3(languages) text = Cache.get_ocr(data, languages) if text is not None: return text try: img = Image.open(StringIO(data)) except DecompressionBombWarning as dce: log.debug("Image too large: %", dce) return None except IOError as ioe: log.info("Unknown image format: %r", ioe) return None # TODO: play with contrast and sharpening the images. extractor = Tesseract(tessdata_prefix, lang=languages) extractor.set_image(img) extractor.set_page_seg_mode(PageSegMode.PSM_AUTO_OSD) text = extractor.get_text() or '' text = text.decode(encoding="UTF-8") # extractor.clear() log.debug('OCR done: %s, %s characters extracted', languages, len(text)) Cache.set_ocr(data, languages, text) return text
def extract_image_data(data, languages=None): """Extract text from a binary string of data.""" tessdata_prefix = get_config('TESSDATA_PREFIX') if tessdata_prefix is None: raise IngestorException("TESSDATA_PREFIX is not set, OCR won't work.") languages = get_languages_iso3(languages) text = Cache.get_ocr(data, languages) if text is not None: return text try: img = Image.open(StringIO(data)) except DecompressionBombWarning as dce: log.debug("Image too large: %", dce) return None except IOError as ioe: log.info("Unknown image format: %r", ioe) return None # TODO: play with contrast and sharpening the images. extractor = Tesseract(tessdata_prefix, lang=languages) extractor.set_page_seg_mode(PageSegMode.PSM_AUTO_OSD) text = extractor.ocr_image(img) extractor.clear() log.debug('OCR done: %s, %s characters extracted', languages, len(text)) Cache.set_ocr(data, languages, text) return text
def extract_image_data(data, languages=None): """Extract text from a binary string of data.""" if TESSDATA_PREFIX is None: raise ValueError("Env TESSDATA_PREFIX is not set, OCR will not work.") key, text = get_cache(data) if text is not None: return text try: img = Image.open(StringIO(data)) except Exception as ex: log.debug("Failed to parse image internally: %r", ex) return "" # TODO: play with contrast and sharpening the images. try: languages = _get_languages(languages) extractor = Tesseract(TESSDATA_PREFIX, lang=languages) extractor.set_page_seg_mode(PageSegMode.PSM_AUTO_OSD) text = extractor.ocr_image(img) log.debug("OCR done: %s, %s characters extracted", languages, len(text)) set_cache(key, text) return text except Exception as ex: log.exception(ex) return ""
def extract_image_data(data, languages=None): """Extract text from a binary string of data.""" if TESSDATA_PREFIX is None: raise ValueError('Env TESSDATA_PREFIX is not set, OCR will not work.') key, text = get_cache(data) if text is not None: return text try: img = Image.open(StringIO(data)) except Exception as ex: log.debug('Failed to parse image internally: %r', ex) return '' # TODO: play with contrast and sharpening the images. try: languages = _get_languages(languages) extractor = Tesseract(TESSDATA_PREFIX, lang=languages) extractor.set_page_seg_mode(PageSegMode.PSM_AUTO_OSD) text = extractor.ocr_image(img) log.debug('OCR done: %s, %s characters extracted', languages, len(text)) set_cache(key, text) return text except Exception as ex: log.exception(ex) return ''
def ocrImage(tagDest,tessdataPrefix,lang,charWhitelist,pageMode): destOcrImg = "/tmp/"+genymotion_vm_name+"-"+tagDest+".png" print "OCR : "+str(destOcrImg) #OCR Def tr = Tesseract(tessdataPrefix, lang) tr.set_variable("tessedit_char_whitelist", charWhitelist) tr.set_page_seg_mode(pageMode) #OCR image = Image.open(destOcrImg) tr.set_image(image) return tr.get_utf8_text()
def extract_image_data(data, languages=None): """Extract text from a binary string of data.""" tessdata_prefix = get_config('TESSDATA_PREFIX') if tessdata_prefix is None: raise IngestorException("TESSDATA_PREFIX is not set, OCR won't work.") languages = get_languages_iso3(languages) text = Cache.get_ocr(data, languages) if text is not None: return text img = Image.open(StringIO(data)) # TODO: play with contrast and sharpening the images. extractor = Tesseract(tessdata_prefix, lang=languages) extractor.set_page_seg_mode(PageSegMode.PSM_AUTO_OSD) text = extractor.ocr_image(img) log.debug('OCR done: %s, %s characters extracted', languages, len(text)) Cache.set_ocr(data, languages, text) return text
def extract_image_data(data, languages=None): """Extract text from a binary string of data.""" tessdata_prefix = get_config('TESSDATA_PREFIX') if tessdata_prefix is None: raise IngestorException("TESSDATA_PREFIX is not set, OCR won't work.") languages = get_languages_iso3(languages) text = Cache.get_ocr(data, languages) if text is not None: return text img = Image.open(StringIO(data)) # TODO: play with contrast and sharpening the images. extractor = Tesseract(tessdata_prefix, lang=languages) extractor.set_page_seg_mode(PageSegMode.PSM_AUTO_OSD) text = extractor.ocr_image(img) log.debug('OCR done: %s, %s characters extracted', languages, len(text)) Cache.set_ocr(data, languages, text) return text