2012-06-19 3 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

다음 기호 : E 신뢰 : 69.9937 다음 심볼 : T 신뢰 : 69.9937
다음 심볼 : R 신뢰 : 69.9937 다음 심볼 : 신뢰 : 69.9937
다음 기호 : N 신뢰 : 69.9937 다음 심볼 : G 신뢰 : 69.9937
다음 심볼 : - 신뢰도 : 69.9937 다음 기호 : 신뢰도 : 69.9937

분명히 같은 단어에 속하는 문자의 신뢰도 값은 같습니다. 예상되는 출력입니까? 신뢰도 값이 각 캐릭터마다 다르게되어서는 안됩니까? 각 문자가 다른 글꼴 스타일로 된 단어에 대한 코드를 실행 해 보았습니다. 그러나 동일한 단어에 속하는 문자의 신뢰도 값은 동일했습니다.

답변

2

SetVariable 호출 후에 Init 을 호출하는 것이 문제입니다.