linux下qt+opencv、arm端移植opencv

    由于做研究的缘故,需要在Linux下移植opencv配合qt使用,以及arm端移植opencv。由于自己在操作过程中遇到很多问题,并一一解决,为了让其他需要的人少走弯路,现将自己的配置过程记录如下:

一、Linux下移植opencv配合qt使用

1.首先更新安装opencv编译所需的库

    ⑴安装build-essential、libgtk2.0-dev、libavcodec-dev、libavformat-dev、libjpeg.dev、libtiff4.dev、 libswscale-dev 、libjasper-dev 、pkg-config包。

    命令sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev pkg-config

    ⑵安装cmake、cmake-qt-gui

    命令:sudo apt-get install cmake cmake-qt-gui

2.下载opencv包

    opencv包的各种版本官网上都有,下载网址为:https://opencv.org/releases.html 
打开网址弹出如下界面:

linux下qt+opencv、arm端移植opencv_第1张图片     linux下qt+opencv、arm端移植opencv_第2张图片

我安装的是2.4.9的,点击箭头所指示的,弹出如下界面:

linux下qt+opencv、arm端移植opencv_第3张图片

这里有两种文件格式zip与tar.gz,下载任何一种都可以(我下载的是opencv-2.4.9.tar.gz)。

3.安装opencv

    ⑴解压opencv-2.4.9.tar.gz

    解压命令:tar -zxvf opencv-2.4.9.tar.gz

    ⑵解压完成后,进入opencv-2.4.9目录下,执行cmake-gui命令,弹出如下界面:

linux下qt+opencv、arm端移植opencv_第4张图片

注意:"Where is the source code"中填入电脑中opencv源码(即opencv解压后的开源包opencv-2.4.9)的位置,"Where to build the binaries"中填入生成make编译文件的位置(这里我选的是opencv-x64,然后点击Configure。弹出如下界面:

linux下qt+opencv、arm端移植opencv_第5张图片

选择Unix Makefiles和Use default native compilers;点击Finsh,配置完成。注意:点击Finsh后,如果产生某些错误,可以参考文章:http://blog.csdn.net/wuweifeng_2017/article/details/78376276)

linux下qt+opencv、arm端移植opencv_第6张图片

点击Generate,Generate(生成)完成。

linux下qt+opencv、arm端移植opencv_第7张图片

     ⑶编译make

     Generate完成后,进入opencv-x64目录下执行命令:make 开始进行编译......

linux下qt+opencv、arm端移植opencv_第8张图片  linux下qt+opencv、arm端移植opencv_第9张图片

编译成功。

    ⑷安装make install

    编译成功后,执行命令:make install,开始进行安装......

    安装成功后,在/usr/local/lib下就会出现编译好的lib文件。

4.系统变量配置

    ⑴添加库路径

    执行命令sudo vim /etc/ld.so.conf.d/opencv.conf

    在其中添加:/usr/local/lib

linux下qt+opencv、arm端移植opencv_第10张图片

保存.

    更新系统库

    执行命令sudo ldconfig

    设置环境变量

    执行命令:sudo vim /etc/bash.bashrc

    在其中添PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

export PKG_CONFIG_PATH

linux下qt+opencv、arm端移植opencv_第11张图片

保存成功后,则opencv安装完成。

5.运行测试

    将步骤3中解压的/OpenCV-2.4.9/samples中的c文件夹拷贝出来,下面运行一下这里面的一个例程,初步体验下OpenCV。拷贝完成后进入这个文件夹:

    执行命令:chmod +x build_all.sh

             ./build_all.sh

    这样就对例程目录下的源文件进行了编译,这里运行一个人脸检测的程序。接下来运行如下命令:

./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg

注意lena.jpg要把c文件放在同一个目录下

运行结果如下:

linux下qt+opencv、arm端移植opencv_第12张图片linux下qt+opencv、arm端移植opencv_第13张图片

则说明opencv配置成功。

二、arm端移植opencv

1.新建opencv-arm目录,进入opencv-2.4.9目录下,执行cmake-gui命令,弹出如下界面:

linux下qt+opencv、arm端移植opencv_第14张图片

注意:"Where is the source code"中填入电脑中opencv源码(即opencv解压后的开源包opencv-2.4.9)的位置,"Where to build the binaries"中填入生成make编译文件的位置(这里我选的是opencv-arm),然后点击Configure。弹出如下界面:

linux下qt+opencv、arm端移植opencv_第15张图片

选择Unix Makefiles和Specify options for cross-compiling点击Next,弹出如下界面:

linux下qt+opencv、arm端移植opencv_第16张图片

其中,Operating System填入OS名,即编译器名arm-linux;Version填内核版本,即2.4.9;Compilers中C处填入编译器arm-linux-gcc的路径;C++处填入编译器arm-linux-g++的路径;Target Root是寻找lib和include文件的,这些文件都在arm-Linux编译器文件路径下,即目录4.4.1中。设置完成后,点击Finish,开始进行配置(Configure),弹出如下界面:

linux下qt+opencv、arm端移植opencv_第17张图片

说明配置过程中有错误,点击OK,修改如下配置参数。

2.去掉WITH_TIFF、WITH_CUDA、WITH_OPENGL后面的修改CMAKE_INSTALL_PREFIX为要生成文件的路径,而且千万不要跟pc的库重叠,避免将原来的库覆盖;修改CMAKE_BUILD_TYPE为Release;修改CMAKE_FIND_ROOT_PATH为Linux安装库的路径。即如下图:

linux下qt+opencv、arm端移植opencv_第18张图片linux下qt+opencv、arm端移植opencv_第19张图片

重新Configure下,即可配置成功。

linux下qt+opencv、arm端移植opencv_第20张图片

配置成功后,点击Generate。弹出如下界面:

linux下qt+opencv、arm端移植opencv_第21张图片

Configure、Generate成功。

3.进入opencv-arm目录,执行命令:sudo vim CMakeCache.txt,找到CMAKE_EXE_LINKER_FLAGS:STRING='  '在该行添加-lpthread -lrt -ldl三个参数。如下图:

linux下qt+opencv、arm端移植opencv_第22张图片

添加完成后保存。

4.编译make

执行命令:make 开始进行编译......

linux下qt+opencv、arm端移植opencv_第23张图片   linux下qt+opencv、arm端移植opencv_第24张图片

编译成功。

5.安装make install

编译成功后,执行命令:make install,开始进行安装......

linux下qt+opencv、arm端移植opencv_第25张图片        linux下qt+opencv、arm端移植opencv_第26张图片

安装成功。


参考文章:

http://blog.csdn.net/yuechuxuan/article/details/78229942

http://www.cnblogs.com/emouse/archive/2013/02/22/2922940.html

http://blog.csdn.net/jd404647184/article/details/45745535

http://blog.csdn.net/jakeo0o/article/details/54584199

你可能感兴趣的:(linux下qt+opencv、arm端移植opencv)