欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

用eye实现OCR,eye实现OCR,研究了下eye,实现了一

来源: javaer 分享于  点击 47457 次 点评:179

用eye实现OCR,eye实现OCR,研究了下eye,实现了一


研究了下eye,实现了一个调用的demo

[Java]代码

import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.List;import javax.imageio.ImageIO;import prophecy.common.gui.RightAlignedLine;import prophecy.common.image.BWImage;import drjava.util.Tree;import eye.eye01.EyeGuiUtil;import eye.eye03.EyeData;import eye.eye03.RecognizerInfo;import eye.eye03.RecognizerInputType;import eye.eye03.RecognizerSelector;import eye.eye03.Recognizers;import eyedev._01.ImageReader;import eyedev._01.InputImage;import eyedev._01.OCRUtil;import eyedev._01.Option;import eyedev._01.RecognizedText;import eyedev._18.WithFratboySegmenter;import eyedev._21.ImageInfo;public class Main {    EyeData eyeData = new EyeData();    ImageInfo imageInfo = null;    ImageReader recognizer = null;    Recognizers recognizers;    RecognizerSelector recognizerSelector;    BufferedImage image=null;    RecognizedText text=null;    public static void main(String[] args) {        Main m = new Main();        m.main();    }    public void main() {        try {            File f = new File("E:\\opensource\\eye-alpha-10\\examples\\donnie_small.jpg");            image = ImageIO.read(f);            eyeData.setLastImagePath(f.getPath());            recognizers = eyeData.recognizers;            recognizerSelector = new RecognizerSelector(recognizers);            recognizerSelector = new RecognizerSelector(recognizers);            recognizerSelector.selectRecognizer(eyeData                    .getDefaultRecognizerName());            imageInfo = eyeData.imageInfoDB.getImageInfo(f);            prepareRecognizer();            recognizer.setCollectDebugInfo(true);            System.out.println("Starting recognition");            recognizeInBackground(recognizer);            System.out.println(text.text);        } catch (IOException e) {            e.printStackTrace();        }    }    private boolean prepareRecognizer() {        if (recognizer == null) {            RecognizerInfo recognizerInfo = recognizerSelector                    .getSelectedRecognizer();            if (recognizerInfo == null)                return true;            eyeData.setDefaultRecognizerName(recognizerInfo.getName());            Tree code = recognizerInfo.getCode();            System.out.println("Recognizer: "                    + EyeGuiUtil.shortenCode(code.toString()));            recognizer = OCRUtil.makeImageReader(code);            List<Option> options = new ArrayList<Option>();            recognizer.collectOptions(options);            if (options.size() != 0) {                RightAlignedLine line = new RightAlignedLine();                return true;            }            if (recognizerInfo.getInputType() == RecognizerInputType.character) {                recognizer = new WithFratboySegmenter(recognizer);            }        }        return false;    }    void recognizeInBackground(ImageReader recognizer) {        InputImage inputImage = new InputImage(new BWImage(image));        if (imageInfo != null)            inputImage.corrections = imageInfo.getCorrections();        text = recognizer.extendedReadImage(inputImage);    }}
相关栏目:

用户点评