Java Tesseract改进了从图像读取文本

问题描述

我正在尝试从英雄联盟聊天屏幕中读取文本。

为此,我使用tesseract创建了一个Java应用程序。 但是,返回的文本并不完全正确。

这是我使用https://sourceforge.net/projects/tess4j/

从图像中获取文本的代码
import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt

# function that returns dy/dt
def model(y,t):
    print("t=",t)
    k = 0.3
    dydt = -k * y
    return dydt

# initial condition
y0 = 5

# time points
t = np.linspace(0,20)

# solve ODE
y = odeint(model,y0,t)

# plot results
plt.plot(t,y)
plt.xlabel('time')
plt.ylabel('y(t)')
plt.show()

在tessdata文件夹中,我得到了英语tessdata文件https://github.com/tesseract-ocr/tessdata/blob/master/eng.traineddata

image返回以下结果(我删除图片和结果中的个人详细信息):

File file = new File("screenshots/screenshot-15.59.19.png");
ITesseract instance = new Tesseract();
instance.setTessVariable("tessedit_char_whitelist","ABCDEFGHIJKLMnopQRSTUVWXYZ0123456789abcdefghijklmnopqtrstuvwxyz():[] ");

File tessDataFolder = LoadLibs.extractTessResources("tessdata");
instance.setDatapath(tessDataFolder.getAbsolutePath());

try {
    String result = instance.doOCR(file);
} catch (TesseractException e) {
    System.err.println(e.getMessage());
}

如何改进代码获取正确的文本?

如果不可能的话,如何改善Java或任何编程语言的屏幕截图(创建新应用程序)。

我想要的最终数据是游戏时间,例如:[00:05]和':'之后的文字

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)