我正在测试附加的相同图像,以使用tesseract
解码数字。我测试了64位Windows操作系统和32位Ubuntu操作系统。 Windows操作系统中的测试结果给出了正确的结果。 Windows结果是43750,但32位Ubuntu给了我43730。
我使用相同的代码,如下所示
tesseract::TessBaseAPI tess;
tess.Init("/usr/share/tesseract-ocr/tessdata/", "eng", tesseract::OEM_DEFAULT);
tess.SetVariable("tessedit_char_whitelist", "0123456789");
tess.SetPageSegMode(tesseract::PSM_AUTO);
//tess.SetImage((uchar*)extText.data, extText.cols, extText.rows, 1, extText.cols);
// Get the text
//readtxt = tess.GetUTF8Text();//GetUTF8Text();
const char* image = "image.jpg";
FILE *fin = fopen("image.jpg", "rb");
if(fin == NULL){
return FILE_ERROR;
}
fclose(fin);
STRING text_out;
if(!tess.ProcessPages(image, NULL, 0, &text_out)){
return PROCESS_ERROR;
}
readtxt = text_out.string();
return SUCCESS;
我使用sudo apt-get install tesseract-ocr tesseract-ocr-eng libtesseract-dev libleptonica-dev
命令安装在Ubuntu中。
对于Windows PC,我从所有源代码构建的所有内容,版本都是Tesseract-3.02。
我从Windows PC替换了tessdata文件夹并将其放入/ usr / share / tesseract-ocr。但结果仍然不同。
我唯一能想到的是64位和32位差分。在64位操作系统中的Windows PC进程和在32位操作系统中的Linux操作系统进程(Linux系统处理器为64位,但我安装了32位Ubuntu操作系统)。这是正确的,因为64位和32位的差异,结果是不同的?
由于
答案 0 :(得分:1)
您获得不同结果的主要原因是您使用不同版本的Tesseract:3.02和3.03。尽管看似微小的版本号差异,但识别算法存在明显差异。
以下是Tesseract更改日志:https://github.com/tesseract-ocr/tesseract/blob/master/ChangeLog
此外,训练有素的数据很重要。训练Tesseract自己可能有助于改善结果。我也有5个被误解为3的问题,我通过训练Tesseract的字体部分解决了这个问题。