Ubuntu12.04上编译PlateGatewayQt

简介:
操作系统: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演示完成!^_^

本文转自博客园知识天地的博客,原文链接:Ubuntu12.04上编译PlateGatewayQt,如需转载请自行联系原博主。

相关文章
|
3天前
|
JSON Ubuntu 开发者
ubuntu 22安装lua环境&&编译lua cjson模块
通过上述步骤,可以在 Ubuntu 22.04 系统上成功安装 Lua 环境,并使用 LuaRocks 或手动编译的方式安装 lua-cjson 模块。本文详细介绍了每一步的命令和操作,确保每一步都能顺利完成,适合需要在 Ubuntu 系统上配置 Lua 开发环境的开发者参考和使用。
29 13
|
2月前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
229 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
2月前
|
Ubuntu 编译器 计算机视觉
Ubuntu系统编译OpenCV4.8源码
【10月更文挑战第17天】只要三步即可搞定,第一步是下载指定版本的源码包;第二步是安装OpenCV4.8编译需要的编译器与第三方库支持;第三步就是编译OpenCV源码包生成安装文件并安装。
|
2月前
|
Ubuntu Shell API
Ubuntu 64系统编译android arm64-v8a 的openssl静态库libssl.a和libcrypto.a
Ubuntu 64系统编译android arm64-v8a 的openssl静态库libssl.a和libcrypto.a
|
3月前
|
Ubuntu 编译器 C语言
Ubuntu 源码编译指定版本 make:神秘代码背后的激情冒险,等你来战!
【9月更文挑战第8天】在Ubuntu中,编译指定版本的源码`make`是一项挑战但也极具价值的任务。它允许我们根据特定需求定制软件,提升性能与功能适配。首先需安装必要工具包如GCC等;接着下载所需源码并阅读相关文档以了解编译要求。通过运行`./configure`、`make`及`sudo make install`命令完成编译安装流程。过程中可能遇到依赖项缺失或编译选项设置不当等问题,需根据错误提示逐一解决。对于大型项目,可利用多核编译加快速度。掌握这一技能有助于更好地探索开源世界。
61 3
|
4月前
|
Ubuntu Linux
ubuntu源码编译指定版本make
以上内容涵盖了在Ubuntu中编译安装指定版本软件的全过程,这是一个技术性很强的操作,不仅可以带来定制化的安装体验,同时也能增加对系统管理和软件构建流程的理解。遵循以上步骤,任何有一定基础的用户都能够按需编译和安装软件。
77 8
|
4月前
|
Ubuntu Linux Windows
如何在WSL中的ubuntu编译Linux内核并且安装使用ebpf?
请注意,在WSL1中可能会由于内核架构限制而无法成功进行以上过程,WSL2对于Linux内核的完整支持更为合适。此外,部分步骤可能因不同的Linux发行版或内核版本而异。
237 4
|
4月前
|
Ubuntu 编译器 C语言
Ubuntu 源码编译指定版本 make:神秘代码背后的激情冒险,等你来战!
【8月更文挑战第19天】在Ubuntu中编译指定版本的`make`工具是一项高级技巧,能让你针对特定需求定制软件。首先确保已安装`build-essential`等必要组件。下载所需版本源码后,遵循README指南配置与编译。使用`./configure`检测环境,`make`编译,最后`sudo make install`安装。面对问题如缺失依赖或编译选项不当,需耐心解决。对于大型项目,可利用多核加速编译,如`make -j 4`。这一过程虽具挑战,却能显著提升软件性能与功能适配。
87 2
|
3月前
|
Ubuntu
编译ubuntu内核
编译ubuntu内核
|
4月前
|
Ubuntu 开发工具 Android开发
Repo下载、编译AOSP源码:基于Ubuntu 21.04,android-12.1.0_r27
文章记录了作者在Ubuntu 21.04服务器上配置环境、下载并编译基于Android 12.1.0_r27版本的AOSP源码的过程,包括解决编译过程中遇到的问题和错误处理方法。
257 0