Skip to content

使用示例

1. 识别本地图片

java
// 识别本地图片文件
File imageFile = new File("example.jpg");
OcrResult result = ocrService.recognize(
    imageFile,
    OcrOptions.defaultOptions()
);

// 获取识别结果
String text = result.getText();
double confidence = result.getConfidence();

2. 识别网络图片

java
// 识别网络图片
String imageUrl = "https://example.com/image.jpg";
OcrResult result = ocrService.recognize(
    imageUrl,
    OcrOptions.defaultOptions()
);

// 获取识别结果
String text = result.getText();
double confidence = result.getConfidence();

3. 识别图片输入流

java
// 识别图片输入流
InputStream inputStream = new FileInputStream("example.jpg");
OcrResult result = ocrService.recognize(
    inputStream,
    OcrOptions.defaultOptions()
);

// 获取识别结果
String text = result.getText();
double confidence = result.getConfidence();

4. 识别图片字节数组

java
// 识别图片字节数组
byte[] imageBytes = Files.readAllBytes(Paths.get("example.jpg"));
OcrResult result = ocrService.recognize(
    imageBytes,
    OcrOptions.defaultOptions()
);

// 获取识别结果
String text = result.getText();
double confidence = result.getConfidence();

5. 批量识别图片

java
// 批量识别图片
List<File> imageFiles = Arrays.asList(
    new File("image1.jpg"),
    new File("image2.jpg")
);
List<OcrResult> results = ocrService.recognizeBatch(
    imageFiles,
    OcrOptions.defaultOptions()
);

// 处理识别结果
for (OcrResult result : results) {
    log.info("识别文本: {}", result.getText());
    log.info("置信度: {}", result.getConfidence());
}

6. 自定义识别选项

java
// 创建自定义识别选项
OcrOptions options = OcrOptions.builder()
    .language("zh")
    .detectOrientation(true)
    .detectLanguage(true)
    .probability(true)
    .build();

// 使用自定义选项识别图片
OcrResult result = ocrService.recognize(
    new File("example.jpg"),
    options
);

7. 处理识别结果

java
// 获取完整的识别结果
OcrResult result = ocrService.recognize(
    new File("example.jpg"),
    OcrOptions.defaultOptions()
);

// 获取识别文本
String text = result.getText();

// 获取置信度
double confidence = result.getConfidence();

// 获取图片方向
float orientation = result.getOrientation();

// 获取识别语言
String language = result.getLanguage();

// 获取识别区域
List<OcrRegion> regions = result.getRegions();
for (OcrRegion region : regions) {
    log.info("区域文本: {}", region.getText());
    log.info("区域位置: {}", region.getLocation());
    log.info("区域置信度: {}", region.getConfidence());
}

8. 异常处理

java
try {
    OcrResult result = ocrService.recognize(
        new File("example.jpg"),
        OcrOptions.defaultOptions()
    );
    // 处理识别结果
} catch (OcrException e) {
    // 处理 OCR 异常
    log.error("OCR 识别失败: {}", e.getMessage());
} catch (ProviderException e) {
    // 处理服务商特定异常
    log.error("服务商异常: {}", e.getMessage());
}

9. 异步识别

java
// 异步识别图片
CompletableFuture<OcrResult> future = ocrService.recognizeAsync(
    new File("example.jpg"),
    OcrOptions.defaultOptions()
);

// 处理异步结果
future.thenAccept(result -> {
    // 处理识别结果
    log.info("识别文本: {}", result.getText());
    log.info("置信度: {}", result.getConfidence());
}).exceptionally(throwable -> {
    // 处理异常
    log.error("识别失败", throwable);
    return null;
});

10. 图片预处理

java
// 创建图片预处理选项
OcrOptions options = OcrOptions.builder()
    .preprocess(PreprocessOptions.builder()
        .resize(800, 600)
        .grayscale(true)
        .denoise(true)
        .build())
    .build();

// 使用预处理选项识别图片
OcrResult result = ocrService.recognize(
    new File("example.jpg"),
    options
);

Released under the MIT License.