在 Java 中识别图片并提取文字,你可以使用一些开源的 OCR(光学字符识别)库来实现。OCR 库可以将图片中的文字转换为可编辑的文本。
以下是两种常用的方式来实现图片文字提取:
Tesseract OCR 是一个广泛使用的开源 OCR 引擎,能够将图像中的文字识别并提取为文本。你可以使用 Tesseract 的 Java 封装库来在 Java 中使用它。
步骤流程:
引入依赖:
Maven 依赖:
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>4.5.2</version>
</dependency>
Gradle 依赖:
implementation 'net.sourceforge.tess4j:tess4j:4.5.2'
使用示例代码:
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import java.io.File;
public class ImageToText {
public static void main(String[] args) {
File imageFile = new File("path/to/your/image.png");
Tesseract tesseract = new Tesseract();
try {
String result = tesseract.doOCR(imageFile);
System.out.println("Extracted Text: " + result);
} catch (TesseractException e) {
System.err.println(e.getMessage());
}
}
}
Google Cloud Vision API 提供了强大的图像分析功能,其中包括 OCR 功能。你需要创建一个 Google Cloud 项目并启用 Cloud Vision API,然后使用 Cloud Vision 的 Java 客户端库进行开发。
步骤流程:
引入依赖:
Maven 依赖:
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-vision</artifactId>
<version>2.5.2</version>
</dependency>
Gradle 依赖:
implementation 'com.google.cloud:google-cloud-vision:2.5.2'
使用示例代码:
import com.google.cloud.vision.v1.*;
import com.google.protobuf.ByteString;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class ImageToText {
public static void main(String[] args) throws IOException {
Path imagePath = Paths.get("path/to/your/image.png");
ByteString imgBytes = ByteString.copyFrom(Files.readAllBytes(imagePath));
try (ImageAnnotatorClient vision = ImageAnnotatorClient.create()) {
Image img = Image.newBuilder().setContent(imgBytes).build();
AnnotateImageRequest request = AnnotateImageRequest.newBuilder()
.setImage(img)
.addFeatures(Feature.newBuilder().setType(Feature.Type.TEXT_DETECTION))
.build();
BatchAnnotateImagesResponse response = vision.batchAnnotateImages(List.of(request));
AnnotateImageResponse imageResponse = response.getResponses(0);
if (imageResponse.hasError()) {
System.err.println("Error: " + imageResponse.getError().getMessage());
return;
}
String result = imageResponse.getTextAnnotationsList().get(0).getDescription();
System.out.println("Extracted Text: " + result);
}
}
}
请注意,使用 Google Cloud Vision API 需要设置 Google Cloud 认证,并且会产生相应的费用。
无论你选择使用哪种方式,记得根据实际情况替换示例代码中的图片路径。这些示例代码可以帮助你入门,但在实际应用中可能需要更多的错误处理和配置。