我在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的库文件有什么问题吗?谢谢!
答案 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)");
}
然后成功运作。