2012-06-19 6 views
7

i ejecuta el siguiente código para generar valores de confianza de caracteres-sabia:valores de confianza de caracteres a gota utilizando tesseract 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

la salida obtenida para la imagen de arriba fue:

siguiente símbolo: N confianza: 72.3563 siguiente símbolo: B confianza: 72.3563

siguiente confianza E:: símbolo 69,9937 siguiente símbolo: confianza T: 69.9937
siguiente símbolo: R confianza: 69.9937 siguiente símbolo: Un confianza: 69.9937
siguiente símbolo: N confianza: 69.9937 siguiente símbolo: confianza G: 69.9937
siguiente símbolo: - confianza: 69.9937 siguiente símbolo: I confianza: 69.9937

Como es evidente, los valores de confianza para los caracteres que pertenecen a la misma palabra son los mismos. ¿Es este el resultado esperado? ¿No deberían los valores de confianza ser diferentes para cada personaje? Intenté ejecutar el código de una palabra en la que cada carácter tenía un estilo de fuente diferente ... y, sin embargo, el valor de confianza era el mismo para los caracteres que pertenecen a la misma palabra.

Respuesta

2

El problema es que llama a Init después de la llamada SetVariable.

Cuestiones relacionadas