对于64位Windows操作系统和32位Ubuntu Linux操作系统

时间:2015-07-06 07:20:38

标签: linux ubuntu ocr tesseract

我正在测试附加的相同图像,以使用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位的差异,结果是不同的? enter image description here

由于

1 个答案:

答案 0 :(得分:1)

您获得不同结果的主要原因是您使用不同版本的Tesseract:3.02和3.03。尽管看似微小的版本号差异,但识别算法存在明显差异。

以下是Tesseract更改日志:https://github.com/tesseract-ocr/tesseract/blob/master/ChangeLog

此外,训练有素的数据很重要。训练Tesseract自己可能有助于改善结果。我也有5个被误解为3的问题,我通过训练Tesseract的字体部分解决了这个问题。