7

次のコードを実行して、文字ごとの信頼値を生成しました。

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;
}

画像へのリンク

上の画像で得られた出力は次のとおりです。

次の記号: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

明らかなように、同じ単語に属する文字の信頼値は同じです。これは期待される出力ですか?信頼値はキャラクターごとに異なるべきではありませんか?各文字のフォントスタイルが異なる単語のコードを実行してみましたが、同じ単語に属する文字の信頼値は同じでした。

4

1 に答える 1

2

問題は、SetVariable呼び出しのにInitを呼び出していることです。

于 2013-05-18T00:55:14.853 に答える