我正在使用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
你好,瓦苏
发布于 2017-08-21 14:14:55
将图像重新定标到300DPI将得到正确的结果。
发布于 2018-09-26 17:15:57
这是如何使用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;
}发布于 2020-12-20 20:01:43
可能是受过训练的数据。我使用了在https://digi.bib.uni-mannheim.de/tesseract/上找到的tesseract-ocr-w64-set-v4.1.0.20190314.exe Windows二进制文件中经过训练的数据,数据路径设置如下
instance.setDatapath("C:\\Program Files\\Tesseract-OCR\\tessdata");我确实收到了关于决议的警告,但结果是正确的: 471871882819
https://stackoverflow.com/questions/45186195
复制相似问题