You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中获取Genesis Tesseract 4的逐字符置信度及关联区域

解决方案:获取逐字符置信度并关联分割区域

要同时获取每个字符的置信度及其对应的分割区域,你需要使用PageIterator遍历OCR结果的Symbol级别(单个字符),替代原来单独调用文本、置信度和区域的方法。以下是修改后的实现代码:

...
private TesseractEngine tesseract = new TesseractEngine(path, "eng", EngineMode.LstmOnly);
....
using (var page = tesseract.Process(image, rec, PageSegMode.Auto))
{
    // 初始化PageIterator遍历单个字符
    using (var iterator = page.GetIterator())
    {
        iterator.Begin();
        // 循环遍历所有字符
        do
        {
            // 获取当前字符的文本内容
            string charText = iterator.GetText(PageIteratorLevel.Symbol);
            // 获取当前字符的置信度值
            float charConfidence = iterator.GetConfidence(PageIteratorLevel.Symbol);
            // 获取当前字符的矩形区域坐标
            System.Drawing.Rectangle charRect = iterator.GetBoundingBox(PageIteratorLevel.Symbol);

            // 按需求格式输出结果
            Console.WriteLine($"{charRect.X} {charRect.Y} {charRect.Width} {charRect.Height} \"{charText}\" - confidence:{charConfidence}");

        } while (iterator.Next(PageIteratorLevel.Block, PageIteratorLevel.Symbol));
    }
}

关键说明:

  • PageIteratorLevel.Symbol指定遍历单位为单个字符,确保能获取每个字符的独立数据。
  • GetConfidence(PageIteratorLevel.Symbol)直接返回当前字符的置信度,而非单词或页面的平均值。
  • GetBoundingBox(PageIteratorLevel.Symbol)返回字符的精确矩形区域,无需再单独调用GetSegmentedRegions做手动关联。

内容的提问来源于stack exchange,提问作者MR.ROBOT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 19:18:38