Java 使用OCR从图像文件中读取文本的API
我正在寻找Java中OCR(光学字符识别)的示例代码或API名称,使用它我可以从图像文件中提取所有文本。没有比较它与任何图像,我正在做下面的代码使用Java 使用OCR从图像文件中读取文本的API,java,ocr,Java,Ocr,我正在寻找Java中OCR(光学字符识别)的示例代码或API名称,使用它我可以从图像文件中提取所有文本。没有比较它与任何图像,我正在做下面的代码使用 public class OCRTest { static String STR = ""; public static void main(String[] args) { OCR l = new OCR(0.70f); l.loadFontsDirectory(OCRTest.class, n
public class OCRTest {
static String STR = "";
public static void main(String[] args) {
OCR l = new OCR(0.70f);
l.loadFontsDirectory(OCRTest.class, new File("fonts"));
l.loadFont(OCRTest.class, new File("fonts", "font_1"));
ImageBinaryGrey i = new ImageBinaryGrey(Capture.load(OCRTest.class, "full.png"));
STR = l.recognize(i, 1285, 654, 1343, 677, "font_1");
System.out.println(STR);
}
}
您可以在sourceforge上尝试javaocr: 还有一个使用Encog的小程序的好例子: 这就是说,OCR需要很大的能力,所以这意味着如果您正在寻找大量的使用,您应该关注用C编写的OCR库,并将其与Java集成 OCR很难。因此,在冒险之前,一定要确定自己的需求
Tesseract和opencv(例如javacv用于集成)是常见的选择。还有商业解决方案,如和。开源OCR引擎可从Google for OCR获得。 它可以使用CMD进行处理。您可以使用java轻松地为web应用程序处理CMD
请访问 . 您将获得使用CMD处理OCR的逐步详细信息。您可以尝试或。我喜欢晚一点,因为它比前者容易。 将依赖项添加到pom中`
<dependency>
<groupId>org.bytedeco.javacpp-presets</groupId>
<artifactId>tesseract-platform</artifactId>
<version>3.04.01-1.3</version>
</dependency>
Tess4j有点复杂,因为它需要安装特定的VC++可再发行软件包 我正在寻找仅使用java的OCR API。如果将来链接中断,可以发布一些详细信息吗?供将来参考-似乎正在引用此库:是否有此APIYes@walidBusseta的jar文件。两者都托管在maven中央存储库中。如果不使用maven构建项目,可以从那里下载JAR。您可以在这里->和下载JAR,并确保您还可以下载其他相关JAR。对于maven,它会自动为您下载所有依赖项。
import org.bytedeco.javacpp.*;
import static org.bytedeco.javacpp.lept.*;
import static org.bytedeco.javacpp.tesseract.*;
public class BasicExample {
public static void main(String[] args) {
BytePointer outText;
TessBaseAPI api = new TessBaseAPI();
// Initialize tesseract-ocr with English, without specifying tessdata path
if (api.Init(null, "eng") != 0) {
System.err.println("Could not initialize tesseract.");
System.exit(1);
}
// Open input image with leptonica library
PIX image = pixRead(args.length > 0 ? args[0] : "/usr/src/tesseract/testing/phototest.tif");
api.SetImage(image);
// Get OCR result
outText = api.GetUTF8Text();
System.out.println("OCR output:\n" + outText.getString());
// Destroy used object and release memory
api.End();
outText.deallocate();
pixDestroy(image);
}
}