tesseract::TessBaseAPI
是 Tesseract OCR 库中的一个类,用于处理光学字符识别(OCR)任务。在使用该类时,您可以通过一系列参数和方法进行配置。以下是一些常用的参数设置和说明:
1. 初始化
tesseract::TessBaseAPI *ocr = new tesseract::TessBaseAPI();
在创建 TessBaseAPI
实例后,您需要初始化它。
2. 初始化语言和数据路径
ocr->Init("path/to/tessdata", "eng");
- 路径:指定训练数据所在的目录。
- 语言:指定要使用的语言,例如
"eng"
表示英语。
3. 设置页面 segmentation mode (PSM)
可以通过 SetPageSegMode
方法来设置页面分割模式。不同的模式适用于不同类型的文本布局。
ocr->SetPageSegMode(tesseract::PSM_AUTO);
常用的 PSM 模式包括:
PSM_SINGLE_BLOCK
: 单个块(文本)PSM_SINGLE_LINE
: 单行文本PSM_SINGLE_WORD
: 单词PSM_AUTO
: 自动检测
4. 设置 OCR 引擎模式 (OEM)
可以选择不同的 OCR 引擎模式以优化性能和准确性。
ocr->SetVariable("tessedit_char_whitelist", "0123456789"); // 设置允许识别的字符集合
ocr->SetVariable("oem", "1"); // OEM_TESSERACT_ONLY = 1, 默认值是3(默认引擎 + LSTM)。
可选值为:
0
: Legacy Tesseract only.1
: Neural nets LSTM only.2
: Both.
5. 提供图像并进行 OCR
在完成上述设置后,可以提供图像并执行识别操作。
Pix *image = pixRead("image.png"); // 读取图片文件
ocr->SetImage(image); // 设置图像
char *text = ocr->GetUTF8Text(); // 获取识别结果为 UTF-8 字符串
6. 清理资源
完成 OCR 后,确保释放资源:
delete [] text; // 删除识别结果字符串
pixDestroy(&image); // 销毁 Pix 对象
ocr->End(); // 结束 API 使用
delete ocr; // 删除 TessBaseAPI 实例
总结
这些是使用 Tesseract 的基本步骤和常见参数设置。具体应用中,可能还会根据需求调整其他变量或者添加更多功能。例如,可以调整字符白名单、黑名单、行间距等,以提高特定应用场景下的识别效果。
内容由零声教学AI助手提供,问题来源于学员提问