Ubuntu12.04上编译PlateGatewayQt

时间:2022-01-10 08:54:42

Ubuntu12.04上编译PlateGatewayQt  

2013-03-09 00:21:56|  分类: Computer Vision |  标签:plategatwayqt  opencv  ocr  ubuntu  qt  |字号 订阅

 
 

操作系统:Ubuntu12.04 32bit
        最近要用到字符识别的项目,于是在网上找到一个不错的demo,链接如下:
How-To Install PlateGatewayQt
        首先需要PlateGatewayQt需要的相关开发工具包主要有qt,ffmpeg,opencv,tesseract,相关的编译依赖关系如下,以供交叉编译参考:
---------------------------------------------dependency--------------------------------------------------------------
PlateGatewayQt
|----Qt
|----OpenCV
|----gstreamer
|----ffmpeg
|----libx264
|----libfaac
|----libmp3lame
|----libtheora
|----libvorbis
|----libxvid
|----v4l
|----gtk2.x
---------------------------------------------dependency--------------------------------------------------------------
我们首先安装Qt的开发环境,不过在安装以前我们最好更新一下源:

$ sudo apt-get update

接下来我们需要:
1 安装qt的开发工具,这里我们选择安装qtcreator,系统会下载相关的依赖文件,终端下输入:

$ sudo apt-get install qtcreator

qt开发包安装完以后我们开始进行ffmpeg和opencv的编译,这里我们选择源码编译,编译的具体过程参考国外网友的博客:

http://www.ozbotz.org/opencv-installation/

2.1 为了避免共享库之间起冲突,我们需要删除之前系统中已经安装过的ffmpeg以及x264的包:

$ sudo apt-get remove ffmpeg x264 libx264-dev

2.2 接下来安装开发x264以及ffmpeg所需要的开发包:

$ sudo apt-get install build-essential checkinstall git cmake \

libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev \

libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev \

libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev \

texi2html yasm zlib1g-dev

2.3 下载gstreamer所需要的开发包:

$ sudo apt-get install libgstreamer0.10-0 libgstreamer0.10-dev \

gstreamer0.10-tools gstreamer0.10-plugins-base \

libgstreamer-plugins-base0.10-dev gstreamer0.10-plugins-good \

gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad \ gstreamer0.10-ffmpeg

2.4 下载gtk,这个包和图形界面相关:

$ sudo apt-get install libgtk2.0-0 libgtk2.0-dev

2.5 下载libjpegde>,这个包跟jpeg图像相关:

$ sudo apt-get install libjpeg8 libjpeg8-dev

2.6 在主文件夹下创建一个目录:

$ cd ~ $ mkdir src

2.7 下载x264源代码,编译并且进行安装

a. 作者建议下载最新的稳定版,下载链接:ftp://ftp.videolan.org/pub/videolan/x264 /snapshots/,具体哪个版本并不是特别重要,作者选择的版本是x264-snapshot-20120528-2245- stable.tar.bz2,这里鉴于国内网速不佳,个人推荐使用浏览器下载之后将包放在~/src目录下,然后在终端输入:

$ cd ~/src
$ tar xvf x264-snapshot-20120528-2245-stable.tar.bz2
$ cd x264-snapshot-20120528-2245-stable

b. 进行configure配置(生成makefile)并且编译x264

$ ./configure --enable-static $ make $ sudo make install

2.8 下载并且安装ffmpeg

a. 这里请注意,作者的教程安装的是ffmpeg 0.11.1而PlateGatewayQt进行开发的版本是0.6.6所以我们需要下载0.6.6版本,本人一开始安装了0.11.1版本之后在qt中编译出现了error,有几个函数只有在老版本的ffmpeg中才有!下载地址http://ffmpeg.org/download.html,这里鉴于国内网速不佳,个人推荐使用浏览器下载之后将包放在~/src目录下,然后在终端输入:

$ cd ~/src
$ tar xvf ffmpeg-0.6.6.tar.bz2
$ cd ffmpeg-0.6.6

 

b. 进行configure配置(生成makefile)并且编译ffmpeg

$ ./configure --enable-gpl --enable-libfaac --enable-libmp3lame \

--enable-libopencore-amrnb --enable-libopencore-amrwb \

--enable-libtheora  --enable-libvorbis --enable-libx264 \

--enable-libxvid --enable-nonfree --enable-postproc \

--enable-version3 --enable-x11grab --enable-pthreads

注意对于0.11.1中作者并没有给出“--enable-pthreads"的选项,而对于0.6.6中如果不添加该选项,那么在编译的时候会报错,据 个人猜测这可能是由于ffmpeg0.6.6中没有添加对线程库的支持。配置完毕并且成功生存makefile之后进行编译和安装:

$ make

$ sudo make install

2.9 下载并且安装最新稳定版的v4l(video for linux),作者使用的0.8.8,下载地址为: http://www.linuxtv.org/downloads/v4l-utils/,这个版本没有使用autotools生成,不需要configure,这里鉴于国内网速不佳,个人推荐使用浏览器下载之后将包放在~/src目录下,然后在终端输入:

$ cd ~/src
$ tar xvf v4l-utils-0.8.8.tar.bz2 $ cd v4l-utils-0.8.8 $ make $ sudo make install

2.10 下载和安装OpenCV 2.4.3(PlateGatewayQt中要求安装2.4.3,而该博文作者介绍的是2.4.2,请注意区别)
a. 下载OpenCV2.4.3,地址: http://sourceforge.net/projects/opencvlibrary/files/,这里鉴于国内网速不佳,个人推荐使用浏览器下载之后将包放在~/src目录下,然后在终端输入:

$ cd ~/src
$ tar xvf OpenCV-2.4.3.tar.bz2

b. 创建build目录并执行make

$ cd OpenCV-2.4.3/ $ mkdir build $ cd build $ cmake -D CMAKE_BUILD_TYPE=RELEASE ..

c. 确认cmake输出项中含有如下内容:
  • found gstreamer-base-0.10
  • GTK+ 2.x: YES
  • FFMPEG: YES
  • GStreamer: YES
  • V4L/V4L2: Using libv4l
d. 编译和安装OpenCV

$ make $ sudo make install

2.11 配置Linux
a. 将OpenCV链接库的路径加入linux,对于Red Hat/CentOS来说,可以将

export LD_LIBRARY_PATH=/usr/local/lib

加入/etc/profile或者~/.bashrc
对于Ubuntu来说,请将/usr/local/lib加入到 /etc/ld.so.conf.d/opencv.conf,opencv.conf是不存在的需要新建:

$ sudo gedit /etc/ld.so.conf.d/opencv.conf

加入/usr/local/lib之后保存推出即可。接下来更新一下系统库的cache,在终端中输入:

$ sudo ldconfig /etc/ld.so.conf

b. 使用编辑器在/etc/bash.bashrc末尾加上下面两行

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH

3 下载并安装tesseract(字模库),在终端中输入:

$ sudo apt-get install tesseract-ocr

4. 下载PlateGatewayQt并编译,下载链接:http://www.dexmac.com/src/PlateGatewayQt_150_src.zip

a. 使用qtcreator打开PlateGatewayQt工程,在PlateGatewayQt.linux.pro中末尾加入

INCLUDEPATH +=./include

b. 在最左边的选项卡中选择“项目”--“构建设置”--“构建步骤--“详情”修改qmake参数,截图如下:

 
Ubuntu12.04上编译PlateGatewayQt
 

修改之后的参数为:

"DEFINES+=_FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE _ISOC9X_SOURCE __STDC_CONSTANT_MACROS" "LIBS += -L/usr/local/lib -lopencv_legacy -lopencv_core -lopencv_highgui -lopencv_objdetect -lopencv_imgproc /usr/local/lib/libavformat.a /usr/local/lib/libavcodec.a /usr/local/lib/libavutil.a -lz -lm -lbz2 -rdynamic -Wl,-rpath,/usr/local/lib -llept -ltesseract -lmp3lame -lx264 -lva -lfaac -lopencore-amrnb -lopencore-amrwb -ltheoradec -ltheoraenc -lvorbisenc -lvorbis -lxvidcore"

c. 编译过程中会提示找不到一些链接库,这里再安装上即可:

sudo apt-get install libbz2-dev libleptonica-dev libtesseract-dev

5. 运行PlateGatewayQt,下载测试视频,地址为:plate_test.avi

截图如下:

Ubuntu12.04上编译PlateGatewayQt

demo演示完成!^_^