根据IDC的报道,超过80%的信息是基于NoSQL的,尤其是文本文件。当数字服务或应用程序不能处理所有这些信息时,企业就会遭受损失。为了面对这一挑战,可以使用OCR技术。OCR使用机器学习和/或训练的图像模式将图像像素转化为文本。这一点很重要,因为许多文件被扫描成PDF格式的图像,或者许多文件中包含有文本的图像。因此,OCR是一个重要的步骤,可以从文件中获得所有可能的数据。
为了实现OCR,可以使用开源解决方案Google Tesseract,这是Python和Java社区中最流行的解决方案。Tesseract支持100多个习语,并且可以用新的模型进行训练以识别车牌、验证码等等。Tesseract是在C++中创建的,可以通过Java套用Tess4J构成一个中介层来使用它。下面的代码展示了调用过程。
private String extractTextFromImage ( File tempFile ) throws TesseractException {
ITesseract tesseract = new Tesseract ();
tesseract . setDatapath ( "/usr/share/tessdata/" ); //directory to trained models
tesseract . setLanguage ( "eng+por" ); // choose your language/trained model
return tesseract . doOCR (tempFile); //call tesseract function doOCR()
//passing the file to be processed with OCR technique
}
为了让IRIS使用这个Java类并从Java获得结果,我们需要使用PEX和Java网关解决方案。
首先,有必要在Production中配置Java代理,其次,配置一个PEX业务操作或服务来在Production中连接沟通IRIS和Java。
Class dc . ocr . OcrProduction Extends Ens .Production
{
XData ProductionDefinition
{
< Production Name = "dc.ocr.OcrProduction" LogGeneralTraceEvents = "false" >
< Description ></ Description >