linux下qt+opencv、arm端移植opencv

原创 2017年10月13日 20:04:27

linux下qt+opencv、arm端移植opencv

团队要做一个嵌入式定位的项目,arm端的工作进行一些图像采集、图像预处理,及多种通信接口管理、GUI显示、人机交互等工作。首先先把opencv移植来进行一些实验测试。

本文记录下在linux下移植opencv及arm端移植的过程。

qt的安装过程参考前面转载的一篇文章  http://blog.csdn.net/yuechuxuan/article/details/78216735

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

(1)首先更新源,sudo update sudo upgrade

然后下载opencv编译过程中用到的一些包,搜索一下与opencv相关的有好多。这里我安装了其中的一些,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官网下载的opencv2.4.11 for linux。下载后解压进入,opencv-2.4.11目录下,执行cmake-gui

点击Configure


Generate后进入 opencv-x86目录下 执make          

make install 在/usr/local/lib下会出现编译好的lib文件。

(3)安装完成后对系统变量进行配置

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

在其中添加/usr/local/lib 保存后执行sudo ldconfig

sudo gedit /etc/bash.bashrc

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

export PKG_CONFIG_PATH



(4)测试运行一下

在.pro文件中添加

INCLUDEPATH+=/usr/local/include\

/usr/local/include/opencv\

/usr/local/include/opencv2

LIBS += /usr/local/arm/libopencv_highgui.so \

/usr/local/arm/libopencv_core.so \

/usr/local/arm/libopencv_imgproc.so

运行后结果出现一个框

测试完毕,linux下qt+opencv搭建成功。

二、 arm端移植opencv

1.新建opencv-arm目录,进入opencv-2.4.9执行cmake-gui 

2.点击Configure,保持unixmakefiles选项,选择specify options for corss-compiling来选择编译器路径


3.operating system填入os名,即编译器名arm-linux  os version这个可以不填,我不清楚这个填内核版本还是编译器版本,compilers C填入编译器arm-linux-gcc的elf路径,C++填入编译器arm-linux-g++的elf路径,target root是寻找lib和include文件的,这些文件都在arm-linux编译器文件路径下


4.去掉WITH_TIFF  WITH_CUDA,修改CMAKE_BUILD_TYPE为Release为要生成文件的路径, 修改CMAKE_INSTALL_PREFIX,去掉WITH_OPENGL,修改CMAKE_FIND_ROOT_PATH为Linux安装库的路径





5.点击generate,进入到opencv-arm/CMakeCache.txt下找到CMAKE_EXE_LINKER_FLAGS:STRING='',

CMAKE_EXE_LINKER_FLAGS原来为空,在该行添加-lpthread -lrt -ldl三个参数。



6.执行make

 make install

三、出现的问题

1.cmake-gui时出现

error in configuration process ,project files may be invalid


查阅了好多资料终于解决了,在cmake-gui设置好然后configure的时候,刚刚开始就出现了这个错误,往前翻了一下具体的错误,发现有这么一项    make:arm-linux-g++:Command not found  命令找不到(忘记截图了) ,然后我又在终端里 输入 arm-linux-g++ -v   ,出现 no such file or directory , 此时问题终于找到了, 就是gcc和g++命令找不到,但是我已经交叉编译过了,环境变量也设置了,为什么还是找不到呢?最后终于发现是因为我的Linux系统是64位的,64位机与32位机不兼容,需要安装sudo apt-get install ia32-libs(这个只是网络版本),我输入sudo apt-get install ia32-libs时出现

Package ia32-libs is not available, but is referred to by another package.

This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
  lib32z1 lib32ncurses5 lib32bz2-1.0
E: Package 'ia32-libs' has no installation candidate

所以我就输入 apt-get install lib32z1 ,同样解决了问题



然后继续configure,如果还有错误,请参考下面的问题2

2.在configure的过程中出现

CMake Error at cmake/FindCUDA.cmake:762(if):

  if given arguments:

 

    "CUDA_VERSION""VERSION_GREATER" "5.0" "AND""CMAKE_CROSSCOMPILING" "AND"   "MATCHES" "arm""AND" "EXISTS""CUDA_TOOLKIT_ROOT_DIR-NOTFOUND/targets/armv7-linux-gnueabihf"

 

  Unknown arguments specified

  Call Stack (most recent call first):

  cmake/OpenCVDetectCUDA.cmake:26(find_package)

  cmake/OpenCVFindLibsPerf.cmake:24 (include)

  CMakeLists.txt:423 (include)

这个CUDA有问题,看看WITH_CUDA默认确实是选中的,在上面的框中去掉WITH_CUDA的√,继续configure

4.我第一次安装的版本是opencv3.8.0,但是把在make的过程中出现

make[2]: *** [modules/imgproc/CMakeFiles/opencv_imgproc.dir/src/drawing.cpp.obj] Error 1
make[1]: *** [modules/imgproc/CMakeFiles/opencv_imgproc.dir/all] Error 2
make: *** [all] Error 2


试了很多种方法也没有解决,最后觉得应该是opencv的版本太高了,动态库的链接有问题,也没有解决,不知道是什么原因,还是用低版本的吧!



另外还有一些用到的命令

sudo apt-get install libxext-dev libxt-dev libxrender-dev libxdamage-dev libgl1-mesa-dev libglu1-mesa-dev libdbus-1-dev libgconf2-dev libicu-dev libedbus-dev



qt PC端安装完成后还要进行如下操作

安装完成后一般还要修改一些配置。

在命令行中输入:sudo vi  /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf

打开default.conf文件,

将第一行改为bin目录的路径,第二行改为qt5.8.0目录的路径。

保存退出。



然后在命令行中输入:sudo apt-get install libgl1-mesa-dev

安装 libgl1-mesa-dev






参考的文章

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

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

http://www.cnblogs.com/emouse/archive/2013/04/01/2993842.html








版权声明:本文为博主原创文章,未经博主允许不得转载。

opencv在arm和x86上的移植

这篇文章重点还是将如何安装Opencv到linux下,并且配置Opencv到QT中,并实现在x86和arm平台上能够顺利运行qt+Opencv的GUI程序。为将来做嵌入式模式识别搭建一个快速方便的平台...
  • yzysj123
  • yzysj123
  • 2014年07月30日 23:20
  • 23195

移植QT和opencv到ARM

移植QT版本:4.7 opencv版本2.4.3到ARM(友善板6410)
  • dabusideqiang
  • dabusideqiang
  • 2014年07月28日 09:37
  • 1722

OpenCV ARM移植(交叉编译opencv)

部分内容来自下面2编文章: http://www.cnblogs.com/emouse/archive/2013/04/01/2993842.html http://blog.csdn.net/sat...
  • yueguanyun
  • yueguanyun
  • 2016年04月28日 12:00
  • 13532

Linux下移植OpenCV + Qt 到ARM(Tiny6410)总结 转

下面的文字比较多啊,主要是加入了很多自己的感慨啊,感叹啊啥的,其实我觉得已经是罪简单的方法了,我基本上把我遇到的问题全部罗列了,大家可以参考一下~其实很多问题都是在走弯路,我希望后面的人更顺畅一点吧~...
  • styyzxjq2009
  • styyzxjq2009
  • 2012年09月03日 14:10
  • 1212

linux下qt+opencv、arm端移植opencv

linux下qt+opencv、arm端移植opencv 团队要做一个嵌入式定位的项目,arm端的工作进行一些图像采集、图像预处理,及多种通信接口管理、GUI显示、人机交互等工作。首先先把open...
  • a13894580059
  • a13894580059
  • 2016年07月29日 11:52
  • 1695

[嵌入式资料] Linux下移植OpenCV + Qt 到ARM(Tiny6410)总结 转

Linux下移植OpenCV + Qt 到ARM(Tiny6410)总结 转CSDN 下面的文字比较多啊,主要是加入了很多自己的感慨啊,感叹啊啥的,其实我觉得已经是罪简单的方法了,我基本上把...
  • b5w2p0
  • b5w2p0
  • 2014年08月09日 10:59
  • 1259

Linux下移植OpenCV + Qt 到ARM(Tiny6410)总结 转

这是我的第一篇博客,把我最近做的一个东西和大家分享一下,非常高兴和大家讨论,CSDN是个卧虎藏龙之处,好多特别好的文章,我这里见丑了~~~   下面的文字比较多啊,主要是加入了很多自己的感...
  • wangzengdi
  • wangzengdi
  • 2014年07月02日 19:24
  • 1503

Linux下移植OpenCV + Qt 到ARM(Tiny6410)总结

这是我的第一篇博客,把我最近做的一个东西和大家分享一下,非常高兴和大家讨论,CSDN是个卧虎藏龙之处,好多特别好的文章,我这里见丑了~~~ 下面的文字比较多啊,主要是加入了很多自己的感慨啊,感叹啊啥的...
  • jdzw_c
  • jdzw_c
  • 2011年06月30日 01:56
  • 2290

Linux下移植OpenCV + Qt 到ARM(Tiny6410)总结 转

http://www.haogongju.net/art/944972 这是我的第一篇博客,把我最近做的一个东西和大家分享一下,非常高兴和大家讨论,CSDN是个卧虎藏龙之处,好多特别好的文章,我...
  • zm_nong
  • zm_nong
  • 2012年04月28日 11:09
  • 708

Linux下安装opencv并移植至ARM

目的:OpenCV是Intel支持的开源计算机视觉库。它由一系列C函数和少量C++类构成,实现了图像处理和计算机视觉方面的很多通用算法。它不依赖于其它的外部库—尽管也可以使用某些外部库。OpenCV使...
  • sinat_26551021
  • sinat_26551021
  • 2016年11月24日 22:25
  • 1995
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux下qt+opencv、arm端移植opencv
举报原因:
原因补充:

(最多只允许输入30个字)