当前位置: 首页 > 知识库问答 >
问题:

Tess4j图像读取

谢墨竹
2023-03-14

我使用tess4j api来读取数字图像。

代码如下:

public static void main(String[] args) {
    // TODO Auto-generated method stub
    
       final File imageFile = new File("C:\\Users\\goku\\Desktop\\myimage.png");
        System.out.println("Image found");
       final ITesseract instance = new Tesseract();
        instance.setTessVariable("tessedit_char_whitelist", "0123456789");
        instance.setDatapath("C:\\Users\\goku\\Downloads\\Tess4J"); 
        instance.setLanguage("eng");
        String result;
        try {
            result = instance.doOCR(imageFile);
            System.out.println(result);
        } catch (TesseractException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
       

}

程序将数字读取为错误。无法找到问题。

输出:

1 1 3 251

问候,瓦苏

共有3个答案

钱跃
2023-03-14

它可能是训练的数据。我使用了来自 windows 二进制文件的训练数据.exe https://digi.bib.uni-mannheim.de/tesseract/,数据路径设置如下

instance.setDatapath("C:\\Program Files\\Tesseract-OCR\\tessdata");

我确实得到了一个关于分辨率的警告,但是结果是正确的:471871882819

夏骞尧
2023-03-14

这是如何使用im4java (imagemagick)正确编辑图像,以便可以使用tess4j (tesseract)读取它:

private static File processImage(File img) throws IOException {
    File newImg = File.createTempFile("asdf", ".png");

    ImageMagickCmd cmd = new ImageMagickCmd("convert");
    IMOperation op = new IMOperation();

    op.addImage(img.getAbsolutePath());
    op.strip().resample(300).colorspace("gray").autoLevel().threshold(35000).type("bilevel").depth(8).trim();
    op.addImage(newImg.getAbsolutePath());
    cmd.run(op);

    return newImg;
}
姚俊贤
2023-03-14

将图像缩放到300 DPI会得到正确的结果。

 类似资料:
  • 包的类提供读取和写入图像的方法。使用OpenCV,可以读取图像并将其存储在矩阵中(如果需要,可在矩阵上执行转换)。之后可以将处理后的矩阵写入文件。 类的方法用于使用OpenCV读取图像。 以下是此方法的语法。 它接受一个参数(文件名),一个字符串类型的变量,表示要读取的文件的路径。 下面给出了使用OpenCV库读取Java图像的步骤。 第1步:加载OpenCV本机库 使用方法加载OpenCV本机库

  • 我正在尝试在我的项目中使用Tess4J。它不包括适用于Mac的.dylib文件,所以我已经构建了自己的泰瑟拉克特,并且正在使用泰瑟拉克特构建中的.dylib。我能够毫无问题地加载本机库,并且我相信正确链接了Tess4J库,因为我可以毫无问题地导入它。但是,当我尝试使用以下命令创建 Tesseract 的新实例时: 我得到以下错误: 我能想到的唯一可能的问题是,我的Mac Tesseract安装版本

  • 问题内容: 我的项目中有一个图像文件。层次结构如下所示: 我正在尝试使用以下代码将Manling.png读入Manling.java: 我总是声明中得到一个,所以我认为 路径是错误的。我尝试将图像移动到 项目中的其他位置,并尝试更改文件路径(例如 。有任何想法吗? 如果您想要一个完整的可编译示例,请尝试以下示例: } Just set up the project like this, using

  • 问题内容: 佳能/尼康/其他相机将传感器的原始输出保存为某些专有格式(.CR2等)。是否有旨在读取它们并将其转换为可管理的BufferedImages的Java库? 在这里,我不需要关心完全可定制的转换(类似于ufraw或imagemagick),而是“可以正常工作”以渲染此类图像的简单预览的简单方法。 问题答案: 我去过你那里,我对你有感觉。最好的选择是使用基于Adobe或dcraw的程序自动创

  • 以下程序演示了如何将彩色图像作为BGR类型图像读取并使用JavaFX窗口显示。 在这里通过将标志传递给方法以及保存彩色图像路径的String来读取图像。 假定以下是上述程序中指定的输入图像。 读取图片转为BGR如下所示 -

  • 我正在尝试解决Tess4J安装问题, 1我在WEB-INF\win32-x86 2中创建了一个文件夹,并将libtesseract302.dll和liblept168.dll放在那里,然后将其添加到java构建路径中的源代码/本机库中。当我运行时发现错误 注意,我已经检查了我使用的是32 jvm 所以我肯定 问题 如何修复这个错误? 如果我在安装台4j中犯了错误,请告诉我如何修复?