使用 Java 识别文本 OCR 图像

您可以使用光学字符识别 (OCR) 将图像中的文本转换为可编辑的格式。 JPGPNGTIFFBMPGIF 等图像在互联网上随处可见,您可能需要从在线图像中识别文本。您可以轻松地使用指向该图像的 URL 链接对其执行 OCR,而不是保存或下载文件。以下标题进一步讨论了细节:

Java OCR API – 安装

Aspose.OCR for Java API 可用于对图像进行光学字符识别操作。它可以识别文本并将图像转换为可编辑的文本。请从 Downloads 部分下载 API 的 JAR 文件或在项目的 pom.xml 文件中指定以下 Maven 配置:

存储库:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>

依赖:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-ocr</artifactId>
    <version>20.5</version>
</dependency>

通过使用 Java 对来自 URL 的图像执行 OCR 来识别文本

您可以通过以下步骤对来自 URL 的图像执行光学字符识别:

  1. 使用 AsposeOCR 类创建 API 实例。
  2. 指定图像 URI。
  3. 使用 RecognitionSettings 类设置识别选项。
  4. 获取结果对象。
  5. 打印结果。

以下代码说明了如何通过使用 Java 以编程方式对来自 URL 的图像执行 OCR 来识别文本:

//创建 api 实例
AsposeOCR api = new AsposeOCR();

// 指定图像 URI
String uri = "https://www.castlegateit.co.uk/wp-content/uploads/2016/09/justified_text.png";

// 设置识别选项
RecognitionSettings settings = new RecognitionSettings();
settings.setAutoSkew(false);
ArrayList<Rectangle> rectangles = new ArrayList<Rectangle>();
rectangles.add(new Rectangle(90,186,775,95));
settings.setRecognitionAreas(rectangles);


// 获取结果对象
RecognitionResult result = null;
try {
	result = api.RecognizePageFromUri(uri, settings);
} catch (IOException e) {
	e.printStackTrace();
}

// 打印结果
System.out.println("Result: \n" + result.recognitionText+"\n\n");
System.out.println("RecognitionAreasText: \n");
for(String text: result.recognitionAreasText) {
	System.out.println(text);
}

使用 Java 使用 OCR 从倾斜或倾斜图像中识别文本

有时,由于某种原因,图像可能会倾斜或歪斜。例如,由相机或扫描仪创建的图像可能有点倾斜,然后您可以获得输入图像的倾斜角度。您可以通过了解和纠正倾斜角度来提高文本识别的准确性。您需要执行以下步骤:

  • 使用 AsposeOCR 对象创建 API 实例。
  • 设置识别选项。
  • 计算并设置倾斜角。
  • 使用 RecognitionResult 对象获取结果并打印。

下面的代码显示了如何在 Java 中以编程方式使用 OCR 识别倾斜图像中的文本:

//创建 api 实例
AsposeOCR api = new AsposeOCR();

String uri = "https://www.castlegateit.co.uk/wp-content/uploads/2016/09/justified_text.png";

BufferedImage image = null;
try{
java.net.URL url =new java.net.URL(uri);

// 阅读网址
image = ImageIO.read(url);
}catch(IOException e){
            e.printStackTrace();
        }
// 设置识别选项
RecognitionSettings settings = new RecognitionSettings();
double angle = 0;

// 获取倾斜角度
try {
	angle = api.CalcSkewImage(image);
	System.out.println("Skew text is:" + angle + " degrees.");
} catch (IOException e1) {
	e1.printStackTrace();
}
settings.setSkew(angle);

ArrayList<Rectangle> rectangles = new ArrayList<Rectangle>();
rectangles.add(new Rectangle(90,186,775,95));
settings.setRecognitionAreas(rectangles);

// 获取结果对象
RecognitionResult result = null;
try {
	result = api.RecognizePageFromUri(uri, settings);
} catch (IOException e) {
	e.printStackTrace();
}

// 打印结果
System.out.println("Result: \n" + result.recognitionText+"\n\n");
System.out.println("RecognitionAreasText: \n");
for(String text: result.recognitionAreasText) {
	System.out.println(text);
}

获取免费 API 许可证

您可以申请 免费临时许可证 以充分评估 API。

结论

总之,您已经学会了如何通过对来自任何 URL 地址的图像执行 OCR 操作来识别文本。此外,您还探索了如何校正图像的倾斜角度以提高 API 的准确性和效率。您可以通过访问 文档 查看 API 的其他几个功能,或者如果有任何疑问,请随时通过 免费支持论坛 与我们联系。

也可以看看