如何解决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 举报,一经查实,本站将立刻删除。