2012-06-19 17 views
7

3.01 i karakter-bazlı güven değerlerini oluşturmak için aşağıdaki kod yürütülür:karakter-bazlı güven değerleri

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

görüntü için elde edilen sonucu:

sonraki simge: N güven: 72.3563 sonraki sembol: B güven: 72.3563

next sembol E güven: 69,9937 sonraki sembol T güven: 69,9937
sonraki sembol R güven: 69,9937 sonraki sembol A güven: 69,9937
sonraki sembol N güven: 69,9937 sonraki sembol G güven: 69,9937
sonraki sembol: - güven: 69.9937 sonraki sembol: I güveni: 69.9937

Açıkçası, aynı kelimeye ait karakterlerin güven değerleri aynıdır. Bu beklenen çıktı mı? Her bir karakter için güven değerleri farklı olmamalı mı? Her karakterin farklı yazı tipi stilinde olduğu bir sözcüğün kodunu çalıştırmayı denedim ... ve yine de, aynı değere ait karakterler için güven değeri aynıydı.

cevap

2

Sorun, SetVariable çağrısından sonra Init 'u çağırmanızdır.