如何在TrainingImageLoader中使用png加载前100个字符

时间:2015-05-15 10:08:51

标签: java ocr

我想在前100个字符中绘制最好的png文件,但如果他们不能完成这一切。

文件在那里:http://abatis.org.uk/projects/txt2fig.png

            File fff = new File("C:\\Users\\lll\\Desktop\\txt2fig.png");
            OCRScanner scanner = new OCRScanner();
            TrainingImageLoader loader = new TrainingImageLoader();
            HashMap<Character, ArrayList<TrainingImage>> trainingImageMap = new HashMap<Character, ArrayList<TrainingImage>>();
            loader.load(fff.getAbsolutePath(), new CharacterRange('A', 'Z'), trainingImageMap);
            scanner.addTrainingImages(trainingImageMap);

            Image image = ImageIO.read(fff);
            PixelImage pixelImage = new PixelImage(image);
            pixelImage.toGrayScale(true);
            pixelImage.filter();

            String text = scanner.scan(image, 0, 0, 0, 0, null);
            System.out.println(text);

例外:

java.io.IOException: Expected to decode 26 characters but actually decoded 911 characters in training: C:\Users\lll\Desktop\txt2fig.png
    at net.sourceforge.javaocr.ocrPlugins.mseOCR.TrainingImageLoader.load(TrainingImageLoader.java:107)
    at net.sourceforge.javaocr.ocrPlugins.mseOCR.TrainingImageLoader.load(TrainingImageLoader.java:83)

我的图书馆在pom:

        <dependency>
            <groupId>net.sourceforge.javaocr</groupId>
            <artifactId>javaocr-core</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>net.sourceforge.javaocr.plugins</groupId>
            <artifactId>javaocr-plugin-awt</artifactId>
            <version>1.0</version>
        </dependency>

我知道:

new CharacterRange ('A', 'Z')

应该包含文件中的第一个和最后一个字符,它可以以某种方式绕过?

1 个答案:

答案 0 :(得分:0)

您不理解此工具的概念。您已将带有文本的图像作为训练图像放入OCR,而训练图像应仅具有与数字顺序中的ASCII代码0x20h至0x7Ch(或高于此范围)对应的训练字符,因此至少如下所示:

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

请注意训练图像开头的空格

首先尝试从 javaocr-20100605.zip/ocrTests / 目录中获取anazyle样本图像和训练图像,例如。文件 trainingImages / hpljPica.jpg 作为trainig-image,文件 hpljPicaSample.jpg 作为要分析的图像。使用带有 Java OCR GUI的 Mean Square OCR Recognzier 功能的选项卡(由 java -jar JavaOCR.jar 执行)。稍后您可以尝试使用自己的训练 - 图像组成的图像进行分析。为此,您可以使用 Java OCR GUI中名为 Character Extractor 的选项卡中的功能从图像中提取字符。因此,使用ASCII码排序的提取字符排列输出文件。从他们的角度撰写你的训练形象。

下面的屏幕截图显示了如何将OCR与GUI及其结果一起使用。

OCR与Java OCR工具从空间到〜 OCR with Java OCR tool from space to ~

OCR结果 - 您可以看到一些OCR错误 OCR results - you can see some OCR errors

正如您所看到的,至少发生了两次识别错误,但并不多。