【发布时间】:2017-06-20 08:46:59
【问题描述】:
使用 Tesseract C API 时,可以迭代识别的字符,获取它们的边界框和识别置信度。
我已经发现了如何使用 Tesseract CLI 获取边界框,这是通过在命令末尾添加 makebox 来完成的。问题是它不包含识别置信度。
有没有办法告诉 Tesseract CLI 也输出每个字符的置信度?
【问题讨论】:
-
您的问题找到解决方案了吗?
标签: tesseract
使用 Tesseract C API 时,可以迭代识别的字符,获取它们的边界框和识别置信度。
我已经发现了如何使用 Tesseract CLI 获取边界框,这是通过在命令末尾添加 makebox 来完成的。问题是它不包含识别置信度。
有没有办法告诉 Tesseract CLI 也输出每个字符的置信度?
【问题讨论】:
标签: tesseract
以下是来自tesseract github 的 API 示例。
Pix *image = pixRead("/usr/src/tesseract/testing/phototest.tif");
tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI();
api->Init(NULL, "eng");
api->SetImage(image);
Boxa* boxes = api->GetComponentImages(tesseract::RIL_TEXTLINE, true, NULL, NULL);
printf("Found %d textline image components.\n", boxes->n);
for (int i = 0; i < boxes->n; i++) {
BOX* box = boxaGetBox(boxes, i, L_CLONE);
api->SetRectangle(box->x, box->y, box->w, box->h);
char* ocrResult = api->GetUTF8Text();
int conf = api->MeanTextConf();
fprintf(stdout, "Box[%d]: x=%d, y=%d, w=%d, h=%d, confidence: %d, text: %s",
i, box->x, box->y, box->w, box->h, conf, ocrResult);
}
fprintf() 包含用于打印框和置信信息。
希望对您有所帮助。
编辑:
要从 CLI 获取置信度 (conf) 值和边界框 (left、top、width、height),请将 tesseract 输出设置为 tsv 格式。以下是输出文件名为test.tsv的示例命令。
C:\> tesseract test.tif test -l eng tsv
您可以参考此tesseract wiki 了解更多信息。
【讨论】:
tesseract 服从并不容易。使用 CLI command 更新的答案以简化 shell 命令的执行,如果适用于您的情况,希望对您有所帮助。请检查。