Tesseract 4.00.00alpha编译

时间:2017-03-21 12:07:04

标签: tesseract leptonica

我在ubuntu 16.04 x86中安装了tesseract 4.00.00alpha和leptonica。当我使用以下命令时,

tesseract -v

输出

tesseract 4.00.00alpha
 leptonica-1.74
  libjpeg 8d (libjpeg-turbo 1.4.2) : libpng 1.2.54 : libtiff 4.0.6 : zlib 1.2.8

 Found AVX
 Found SSE

这是理想的。

但是在我尝试编译以下代码时,

#include<baseapi.h>
#include<allheaders.h>
int main(){
tesseract::TessBaseAPI *first=new tesseract::TessBaseAPI();
printf("Tesseract version %s\n",first->Version());
printf("leptonica version %s\n",getLeptonicaVersion());
return 0;
}

使用命令,

g++ sample.cpp -o sample.out -I/usr/local/include/leptonica -I/usr/local/include/tesseract -llept -ltesseract

输出是,

Tesseract version 3.04.01
leptonica version leptonica-1.74

为什么要显示之前的tesseract版本? tesseract和leptonica的库文件有什么问题吗?谢谢!

1 个答案:

答案 0 :(得分:1)

问题是在安装leptonica 1.74时,我使用了命令,

sudo apt-get install libtesseract-dev

从源代码构建tesseract 4.00.00时,我使用了一个命令,

sudo apt-get remove libleptonica-dev libletesseract-dev

以上两个命令正在创建问题。实际上我们不需要安装libleptionica-dev和libtesseract-dev,因为你正在从源代码构建tesseract。

我卸载了两个软件包并重新编写了代码。

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    qApp->installEventFilter(this);
//    grabGesture(Qt::SwipeGesture);
    QGraphicsView graphicsView;
        graphicsView.setDragMode(QGraphicsView::ScrollHandDrag);
}

MainWindow::~MainWindow()
{
    delete ui;
}

bool MainWindow::event(QEvent *event){
    qDebug()<<"event type"<<event->type();

    if(event->type() ==129 /*|| event->type() ==2 || event->type() ==5 */)
    {
        QMouseEvent *ms=static_cast<QMouseEvent*>(event);
        QPoint p=ms->pos();
//        qDebug()<<"point y"<<p.y()<<" and label . y "<<ui->label->y();
//        qDebug()<<"point x"<<p.x()<<" and label . x "<<ui->label->x();
        if(p.y()>ui->label->y())
        {
             goUpperLabel();qDebug()<<"up?";
        }
        else{

            goButtomLabel();
            qDebug()<<"down?";
        }
    }
}





void MainWindow::goButtomLabel(){
    int a=ui->label->text().toInt();
    qDebug()<<"----down-----"<<a;
    a-=1; qDebug()<<"----down-----"<<a;
    ui->label->setText(QString::number(a));
}

void MainWindow::goUpperLabel(){

    int a=ui->label->text().toInt();
    qDebug()<<"-------up--------"<<a;
    a+=1;qDebug()<<"-------up--------"<<a;
//    ui->label->setText(QString::number(a));
      ui->label->setText("QString::number(a)");
}

然后成功运作。