【问题标题】:Tesseract - getting alternative results with confidence levelTesseract - 以置信度获得替代结果
【发布时间】:2012-11-12 11:15:55
【问题描述】:

我正在尝试使用 tesseract 来识别数字。它工作得很好,但有时我会得到错误的结果(8 而不是 9 等)。我知道如何使用一些非 ocr 方法来提高准确性,但我需要其他具有置信度的结果。我发现我为每个 ResultIterator 使用 ChoiceIterator 获得了最佳选择:

    tesseract::TessBaseAPI tess;    
    tess.SetPageSegMode(tesseract::PSM_SINGLE_CHAR);    
    tess.SetVariable("save_best_choices", "T");

    [setting input image here] 

    tess.Recognize(NULL);
    tesseract::ResultIterator* ri = tess.GetIterator();
    tesseract::ChoiceIterator* ci; 
    if(ri != 0)
    {
        char* symbol = ri->GetUTF8Text(tesseract::RIL_SYMBOL);

        if(symbol != 0)
        {
            float conf = ri->Confidence(tesseract::RIL_SYMBOL); 
            cout << symbol << "\tconf: " << conf << "\n"; 

            const tesseract::ResultIterator itr = *ri; 
            ci = new tesseract::ChoiceIterator(itr);
            do {
                const char* choice = ci->GetUTF8Text(); 
                if (choice) {
                    std::cout << "\t" << choice << " conf: " << ci->Confidence() << "\n"; 
                }
            } while(ci->Next());                

            //  delete[] symbol;
        }           
    }

但问题是 ci->GetUTF8Text() 总是返回一个空指针。

我使用 tesseract 3.02 作为 DLL,在 MSVC2010 express 下编译。

【问题讨论】:

    标签: c++ ocr tesseract


    【解决方案1】:

    根据今天早些时候的有限研究,我认为答案可能是设置变量 SaveBlobChoicesSaveBestChoices。我仍然需要自己测试。

    【讨论】:

      猜你喜欢
      • 2014-06-09
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-17
      相关资源
      最近更新 更多