2012-06-19 2 views
7

я выполнил следующий код для генерации символов-накрест значения достоверности:символьных-накрест значений доверительных используя тессеракт 3,01

int main(int argc, char **argv) { 

    const char *lang="eng"; 
    const PIX *pixs; 
    if ((pixs = pixRead(argv[1])) == NULL) { 
     cout <<"Unsupported image type"<<endl; 
     exit(3); 
     } 
    TessBaseAPI api; 
    api.SetVariable("save_blob_choices", "T"); 
    api.SetPageSegMode(tesseract::PSM_SINGLE_WORD );   
    api.SetImage(pixs); 
    int rc = api.Init(argv[0], lang); 
    api.Recognize(NULL); 
    ResultIterator* ri = api.GetIterator(); 
    if(ri != 0) 
    { 
     do 
     { 
      const char* symbol = ri->GetUTF8Text(RIL_SYMBOL); 
      if(symbol != 0) 
      { 
       float conf = ri->Confidence(RIL_SYMBOL); 
       cout<<"\nnext symbol: "<< symbol << " confidence: " << conf <<"\n" <<endl; 

      } 


      delete[] symbol; 
       } while((ri->Next(RIL_SYMBOL))); 
    } 
    return 0; 
} 

link to image

выхода, полученный на картинку был:

следующий символ: N уверенность: 72.3563 следующий символ: B доверие: 72.3563

следующий символ: Е доверия: 69,9937 следующий символ: T доверия: 69,9937
следующий символ: R доверия: 69,9937 следующий символ: Уверенность: 69,9937
следующий символ: N доверия: 69,9937 следующий символ: G доверия: 69,9937
следующий символ: - доверие: 69.9937 следующий символ: Я уверен: 69.9937

Как очевидно, значения достоверности для символов одного и того же слова одинаковы. Является ли это ожидаемым выходом? Разве значения доверия для каждого персонажа не должны отличаться? Я попытался выполнить код для слова, в котором каждый символ был в другом стиле шрифта. И все же доверительное значение было одинаковым для символов одного и того же слова.

ответ

2

Проблема в том, что вы вызываете Init после вызова SetVariable.

Смежные вопросы