Прежде всего, я хочу подтвердить, что я правильно понимаю итератор выбора.
Например, если у меня есть слово на изображении "область действия",
Итератор выбора должен дать мне что-то вроде "s" и, возможно, после Next (), "5".
для 3. буквы «o», возможно, она дает мне «0», после Next () «O» и после Next () «o».
Я правильно понимаю?
Вот весь мой связанный код,
api.SetImage((uchar*)img->imageData,img->width,img->height,img->depth/8,img->widthStep);
api.SetRectangle(0,0,img->width, img->height);
int left,top,right,bottom;
left=0;top=0;right=0;bottom=0;
api.Recognize(NULL);
tesseract::ResultIterator *ri=api.GetIterator();
tesseract::ChoiceIterator *choiceItr;
const tesseract::ResultIterator itr = *ri;
choiceItr = new tesseract::ChoiceIterator(itr);
const char * out=choiceItr->GetUTF8Text();
char * out2=(*ri).GetUTF8Text(tesseract::RIL_SYMBOL);
printf("out:%s,out2:%s",out,out2);
вывод на консоль:
из (нуль), out2: P
p - ожидаемый результат итератора результата, но вывод итератора выбора равен нулю.
спасибо за идеи.
приблизительно решено:
// This ensures Tesseract's "blob_choices" structures are filled
SetVariable("save_best_choices", "T");
http://code.google.com/p/tesseract-ocr/issues/detail?id=555