# anysdk-ocr
**Repository Path**: tianyuanoss/anysdk-ocr
## Basic Information
- **Project Name**: anysdk-ocr
- **Description**: anysdk cloud
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-05-07
- **Last Updated**: 2025-05-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# AnySDK OCR
AnySDK OCR 是一个统一的光学字符识别(OCR)访问框架,支持多种云服务提供商的 OCR 能力。
## 项目简介
AnySDK OCR 旨在提供一个统一的接口来访问不同云服务提供商的 OCR 能力,目前支持:
- 阿里云 OCR
- 腾讯云 OCR(即将支持)
- 百度云 OCR(即将支持)
通过 AnySDK OCR,您可以:
- 使用统一的 API 访问不同的 OCR 服务
- 轻松切换不同的 OCR 服务提供商
- 获得一致的异常处理和日志记录
- 使用 Spring Boot Starter 快速集成到您的项目中
## 快速开始
### Maven 依赖
```xml
cn.com.anysdk
anysdk-ocr
${latest.version}
cn.com.anysdk
anysdk-ocr-spring-boot-starter
${latest.version}
```
### 基本用法
#### 1. 创建配置
```java
OcrProperties properties = new OcrProperties();
OcrProperties.AliyunProperties aliyunProperties = new OcrProperties.AliyunProperties();
aliyunProperties.setAccessKeyId("your-access-key-id");
aliyunProperties.setAccessKeySecret("your-access-key-secret");
aliyunProperties.setRegion("cn-shanghai");
properties.setAliyun(aliyunProperties);
```
#### 2. 创建 OCR 服务
```java
IOcrService ocrService = OcrServiceFactory.createService(properties);
```
#### 3. 识别图片
```java
// 从文件识别
File imageFile = new File("path/to/image.jpg");
OcrResult result = ocrService.recognize(imageFile, OcrOptions.defaultOptions());
// 从 URL 识别
String imageUrl = "https://example.com/image.jpg";
OcrResult result = ocrService.recognize(imageUrl, OcrOptions.defaultOptions());
// 从输入流识别
InputStream inputStream = new FileInputStream("path/to/image.jpg");
OcrResult result = ocrService.recognize(inputStream, OcrOptions.defaultOptions());
// 从字节数组识别
byte[] imageBytes = Files.readAllBytes(Paths.get("path/to/image.jpg"));
OcrResult result = ocrService.recognize(imageBytes, OcrOptions.defaultOptions());
```
#### 4. 处理结果
```java
// 获取识别文本
String text = result.getText();
System.out.println("识别结果:" + text);
// 获取置信度
double confidence = result.getConfidence();
System.out.println("置信度:" + confidence);
// 获取图片方向
float orientation = result.getOrientation();
System.out.println("图片方向:" + orientation);
```
### Spring Boot 集成
如果您使用 Spring Boot,可以通过 `anysdk-ocr-spring-boot-starter` 快速集成。
#### 1. 添加配置
在 `application.yml` 中添加:
```yaml
anysdk:
ocr:
aliyun:
access-key-id: your-access-key-id
access-key-secret: your-access-key-secret
region: cn-shanghai
```
#### 2. 注入 OCR 服务
```java
@Autowired
private IOcrService ocrService;
```
#### 3. 使用 OCR 服务
```java
@RestController
@RequestMapping("/ocr")
public class OcrController {
@Autowired
private IOcrService ocrService;
@PostMapping("/recognize")
public OcrResult recognize(@RequestParam("file") MultipartFile file) throws IOException {
return ocrService.recognize(
file.getInputStream(),
OcrOptions.defaultOptions()
);
}
}
```
## 主要特性
- **统一接口**:提供统一的 API 访问不同的 OCR 服务
- **多提供商支持**:支持阿里云、腾讯云、百度云等多个 OCR 服务提供商
- **灵活配置**:支持丰富的配置选项,包括图片预处理、重试策略等
- **异常处理**:统一的异常处理机制,提供详细的错误信息
- **监控支持**:内置监控机制,可以监控 OCR 服务的调用情况
- **Spring Boot 集成**:提供 Spring Boot Starter,快速集成到 Spring Boot 项目中
## 文档
- [API 文档](API_DOCUMENTATION.md)
- [错误码文档](ERROR_CODES.md)
- [示例文档](EXAMPLES.md)
- [贡献指南](CONTRIBUTING.md)
## 许可证
Apache License 2.0