Ubuntu 12.04 + opencv 2.4.1 + Qt 4.8.3 + Qt creater 2.5.2 安装配置

整体参考:http://www.cnblogs.com/tornadomeet/archive/2012/07/10/2584702.html

1. opencv库的安装参考http://www.samontab.com/web/2012/06/installing-opencv-2-4-1-ubuntu-12-04-lts/

最好按照上面的步骤安装,提供更多支持,opencv.org有更简便的办法,但貌似很多东西没装上。

2.Qt库编译安装参考:http://www.linuxidc.com/Linux/2012-06/62606.htm

注意 ./configure 时最好只制定路径 --prefix ;其他不要乱设,容易出问题

安装过程可能出现 warning ,即使./configure加上 -no-webkit 还是会出现,不过好像不影响。

编译过程出现提示说没有权限什么的,就sudo执行。

如果编译完错误,想重新编译,则(进入make的路径,一般是在解压后的文件夹内如/xxxopensource-src/进行make操作)

直接运行下面的命令就行了。 make   uninstall make   clean rm -rf XXX  //XXX 目录 如果是编译过程出错,要重新编译 那就 make clean 然后再 ./configure     make && make install

如果想编译成静态库,要在./configure 加上--enable-static。在使用静态库时需要在 QMAKE_LFLAGS 后面加上 –static

Remember that when you ran make, all the executables were created in the temporary directory where you had unzipped your original tarball. So when you run make install, these executables are copied to the final directories(./configure --prefix=xxx).

make 后把产生的文件放在原来解压的目录下,可能有一些是隐藏文件夹如 .libs。一些不用配置prefix 的 make install 后会把 头文件和库文件分别放在

系统的include 和 lib 目录下。而需要配置 prefix 的 make install 后会把头文件和库文件分别放在配置目录下,有时候还可能产生 bin 文件。

3. Qt creater 安装参考http://www.linuxidc.com/Linux/2012-06/62607.htm

如果安装完出错想卸载,源文件是.bin,应该会有个uninstall文件,给予执行权限,卸载。

4.直接在ubuntu软件中心搜出来的QT,安装完很多东西是没有的,比如运行程序时可能不会出现qtcreater_process_stub,只弹出一个terminal,但找到可执行文件还是可以点击执行的。

5.下载点http://qt-project.org/downloads只有最新版本,老版本可以去ftp下载ftp://ftp.qt.nokia.com/qt/source/

opencv下载点http://sourceforge.net/projects/opencvlibrary/files/

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

在还没装QT想使用opencv的情况下,需要用下列命令编译:

g++ canny.c `pkg-config opencv --libs --cflags opencv` -o canny

需要注意的是opencv.org提供的例程中有些是从main函数传参数的,如 ./xxx ./agrv[1]  //当然参数可以带路径的

运行结果如图:

如果不是从主函数传参,则一般需要把图片文件放在.c文件同个目录下。注意程序中图片文件名不要写错。

----------------------------------------------------------------------------------------------------------------------------------------------

安装完QT与QTcreater之后,打开qtcreater 选择tools--option --run & debug --qt version 选择我们安装的/usr/local/qt 4.8.3/bin/qmake 注意每个人的路径有可能是不一样的。

在QTcreater里面使用opencv库时需要注意一点的是,需要将opencv的头文件和库文件与Qt关联起来,所以在双击QtCreator工程下到***.pro文件,在其后面添加下列代码:

INCLUDEPATH +=  /usr/local/include  \

                             /usr/local/include/opencv  \

                         /usr/local/include/opencv2

LIBS += /usr/local/lib/libopencv_video.so  \

  /usr/local/lib/libopencv_ts.so \

  /usr/local/lib/libopencv_objdetect.so \

  /usr/local/lib/libopencv_ml.so  \

  /usr/local/lib/libopencv_legacy.so \

  /usr/local/lib/libopencv_core.so \

  /usr/local/lib/libopencv_features2d.so  \

  /usr/local/lib/libopencv_imgproc.so \

  /usr/local/lib/libopencv_highgui.so \

  /usr/local/lib/libopencv_gpu.so \

  /usr/local/lib/libopencv_flann.so   \

  /usr/local/lib/libopencv_contrib.so \

  /usr/local/lib/libopencv_calib3d.so

include路径就不用解释了,按照共享库的命名惯例,每个共享库有三个文件名:real name、soname和linker name。

真正的库文件(而不是符号链接)的名字是real name,包含完整的共享库版本号。

soname是一个符号链接的名字,只包含共享库的主版本号,主版本号一致即可保证库函数的接口一致,因此应用程序的.dynamic段只记录共享库的

soname,只要soname一致,这个共享库就可以用。例如libcap.so.1和libcap.so.2是两个主版本号不同的libcap,有些应用程序依赖于libcap.so.1,有

些应用程序依赖于libcap.so.2,但对于依赖libcap.so.1的应用程序来说,真正的库文件不管是libcap.so.1.10还是libcap.so.1.11都可以用,所以使用共

享库可以很方便地升级库文件而不需要重新编译应用程序,这是静态库所没有的优点。注意libc的版本编号有一点特殊,libc-2.8.90.so的主版本号是6

而不是2或2.8。

linker name仅在编译链接时使用, gcc 的-L 选项应该指定linker name所在的目录。有的 linker

name是库文件的一个符号链接,有的 linker name是一段链接脚本(/usr/lib/libc.so)。上面的LIBS就是linker name!

如图,libopencv_ts.so是linker name,libopencv_ts.so.2.4是son name,libopencv_ts.so 2.4.1 是real name

在 /etc/ld.so.conf  配置文件中左边的一项可以是son name or link name,只要保证最后能够链接到real name 即可。

注意:我们在include目录增加opencv2的目录,其实你真的要用的话,要继续深入底层目录,才能直接找到头文件。比如在程序中 #include <opencv2/highgui/highgui.hpp>

这样使用链接的相对路径就能找到头文件

还有路径可能大家都不一样,老版本的opencv动态库名称也不一样。

要是嫌麻烦,直接在 /usr/local/Qt-4.8.3/mkspecs/linux-g++/qmake.conf 加入下面命令以及将上面的libs和include都加进去:

QMAKE_INCDIR = /usr/local/include/opencv

QMAKE_LIBS = -lopencv_imgproc  -lopencv_core -lopencv_highgui -lopencv_ml

注:gcc -L选项告诉编译器去哪里找需要的库文件,-L. 表示在当前目录找。-lstack 告诉编译器要链接libstack 库,-I选项告诉编译器去哪里找头文件。

编译器默认会找的目录可以用 gcc  -print-search-dirs 选项查看。其中的libraries 就是库文件的搜索路径列表,各路径之间用:号隔开。编译器会在这些

搜索路径以及-L 选项指定的路径中查找用 -l 选项指定的库,比如-lstack, 编译器会首先找有没有共享库libstack.so,如果有就链接它,如果没有就找有没有

静态库libstack.a ,如果有就链接它。所以编译器是优先考虑共享库的,如果希望编译器只链接静态库,可以指定-static选项。当然也可以具体指定库全称的

路径,如 ../../libstack.a 。

注意,在链接时除了 -L 指定库路径,还可通过 $LIB_LIBRARAY_PATH 和 /etc/ld.so.conf 来查找。

现代连接器在处理动态库时将链接时路径(Link-time path)和运行时路径(Run-time path)分开,用户可以通过-L 指定连接时库的路径,通过-R(或-

rpath)指定程序运行时库的路径,大大提高了库应用的灵活性。

这样以后新建文件就不用每个都去更改.pro文件了。实际上 Makefile 是 由 qmake -o Makefile xxx.pro 产生。

如果你使用IDE编译完一个给main函数传参的程序,那也只能去到命令行执行程序并传参数了(其实也可以在项目配置中添加需要的命令行参数),所谓IDE 只是帮你集成了编译以及调试的工具,如给g++,gdb,还有就是帮你链接一些库文件,使你省去一些输入长命令的工作。先执行build ,再把图片文件放进 生成的xxx-build-desktop-Qt_4_8_3__Qt-4_8_3____目录内。

基于Qt 和 Opencv的一个图像处理小软件,ubuntu 下测试通过,软件操作界面如下:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏不想当开发的产品不是好测试

java提示找不到或无法加载主类

背景 默许jdk的配置大家都没有问题,执行java,javac无报错,但今天在尝试在本地起来kafka的时候,提示java 找不到或无法加载主类,然后日志中提示...

1807
来自专栏Django Scrapy

Django安装及简单使用1.1

Django安装及简单使用 1.1 Django的简要概述 Django采用了MVC的软件设计模式,即模型M,视图V和控制器C。 代码都在github: U...

29611
来自专栏Java Edge

Intellij IDEA从Github上拉代码然后出现这么个对话框单击Git Repository URL后面的下拉菜单,可以选择以前fork过的工程,然后单击clone,就OK了

3215
来自专栏电光石火

JAVA EE Eclipse下配置Tomcat服务器

在进行Java web编程之前,必须要进行web服务器的配置,这里选择在Java EE(版本) Eclipse中进行服务器的配置。当然了,在安装Java EE ...

21510
来自专栏码神联盟

IntelliJ系列 ⑤ | IDEA 之 创建Java、Module工程全解

804
来自专栏鬼谷君

django基础之一

1032
来自专栏青枫的专栏

windows下如何下载、安装并破解pycharm-professional-2017.3.4?

 1、PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码...

1263
来自专栏用户2442861的专栏

WebStrom快捷键

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/details...

961
来自专栏娱乐心理测试

小程序设置启动页面

2896
来自专栏沈唁志

Windows下PyCharm的安装配置与激活码激活

4512

扫码关注云+社区