Java OCR不会产生任何输出

Jam*_*sTR 7 java ocr

我正在使用这个ocr算法http://sourceforge.net/projects/javaocr/来检测图像中的数字.我尝试过使用tesseract,但我有完全相同的问题,有时它不起作用.这从来没有奏效过(java ocr).当我使用java ocr时,它没有产生任何输出但是/ n.

图像是完全白色的,数字是黑色的.图像中唯一的工件是靠近顶部和底部边框的两条线,甚至不会与字符相互影响.对齐是正常的,就像打印文本一样,它不是手写或倾斜.

BufferedImage image2 = ImageIO.read(new File("moneyImage"+".bmp"));
ImageManipulator.show(image2, 5);
OCRScanner scanner = new OCRScanner();
String items = scanner.scan(image2, 0, 0, 0, 0, null);
System.out.println(items);
Run Code Online (Sandbox Code Playgroud)

图像2清晰显示,此示例取自发布它的其他人.我没有做任何复杂的事情,这对我来说没有意义,为什么这不起作用.这是一个简单的灰度图像.

当我尝试运行独立程序(java ocr one)时,它可以工作并生成正确的数字作为输出.我不知道如何从我的java项目中提取字符以及为什么它不起作用.

我的测试图片是: 测试图像

还有,这个

String lastText = null;
Tesseract instance = Tesseract.getInstance();
try {
    lastText = instance.doOCR(imageFile);
} catch (TesseractException ex) {
    Logger.getLogger(ActionAbstraction.class.getName()).log(Level.SEVERE, null, ex);
}
Run Code Online (Sandbox Code Playgroud)

即使我给出了从java ocr输出的单个数字的图片,也绝对不产生输出.它们似乎工作但是当我进行实际扫描时它们都不输出任何东西.

此外,我正在使用tiff图像,正如我之前所说,字符提取工作正常.什么是行不通的是java代码调用图像上的扫描.我已经链接了相应的库(或者它会产生编译器错误)

mon*_*nny 0

不确定:但是您不是告诉扫描仪只用以下行查看图像的左上角:

String items = scanner.scan(image2, 0, 0, 0, 0, null);
Run Code Online (Sandbox Code Playgroud)

也许将其更改为(类似):

String items = scanner.scan(image2, 0, 0, 80, 20, null);
Run Code Online (Sandbox Code Playgroud)

[将 80,20 更改为图像的宽度/高度 - 您可能可以让 Java 为您执行此操作 - 如果我没记错的话,我认为 Image 类中有一个方法]。

我通过对源代码进行 git 克隆得到了这个(可能是错误的)想法:

git clone git://git.code.sf.net/p/javaocr/source javaocr-source

并且在“javaocr-source\core\src\main\java”目录中: 'java.net.sourceforge.javaocr.ImageScanner.java' 中包含的接口定义了 'scan' 接口,如下所示:

//

void scan(
            Image image,
            DocumentScannerListener listener,
            int left,
            int top,
            int right,
            int bottom);
}
Run Code Online (Sandbox Code Playgroud)

//