我正在使用tess4jforjava,当我使用默认的tessdata时,它可以工作,但是当我使用https://github.com/livezingy/tesstrainsh-win 我得到一个错误:
Failed loading language 'eng'
Tesseract couldn't load any languages!
Exception in thread "main" java.lang.Error: Invalid memory access
at com.sun.jna.Native.invokePointer(Native Method)
at com.sun.jna.Function.invokePointer(Function.java:470)
at com.sun.jna.Function.invoke(Function.java:404)
at com.sun.jna.Function.invoke(Function.java:315)
at com.sun.jna.Library$Handler.invoke(Library.java:212)
at com.sun.proxy.$Proxy0.TessBaseAPIGetUTF8Text(Unknown Source)
at net.sourceforge.tess4j.Tesseract.getOCRText(Unknown Source)
at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source)
at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source)
at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source)
但是我可以测试新训练的 eng.traineddata
使用 eval.sh
& lstmeval
当我打开这两个文件时,它们有很大的不同,原始的trainneddata有一个可读的格式,而新的一个没有。一开始我以为它被破坏了,但是可以使用 eval.sh
让我觉得不一样。
这两个都是编辑器上的培训数据,左边的是新培训的数据,右边的是tess4j附带的原始数据
我的代码是这样的:
public static void main(String[] args) {
File imageFile = new File("assets/screenshot_22.png");
ITesseract instance = new Tesseract();
try {
String result = instance.doOCR(imageFile);
System.out.println("result: " + result);
} catch (TesseractException e) {
System.err.println(e.getMessage());
}
}
我看到一些人发帖说你需要做些什么 instance.setDataPath("abs-path-to-tessdata")
但这不是问题所在,我已经试过了,结果是相同的,但结果不同 tessdata
.
感谢您的帮助,谢谢!
暂无答案!
目前还没有任何答案,快来回答吧!