嵌入式设备中OpenCV的移植

文章目录

*
1. 移植是什么意思?
2. 移植的一般过程
3. OpenCV的移植过程

+ 3. 1下载源码
+ 3.2 搭建编译环境
+
* 3.2.1 安装所需工具
* 3.2.2 生成makefile文件
+ 3.3 编译OpenCV源码
4. Qt例程使用OpenCV
5. 运行例程

1. 移植是什么意思?

一般所接触的OpenCV都是直接在PC电脑上跑,比如python版或C++版的。现在呢把它放到imx6ull这个平台上去跑,所以需要修改一下。

2. 移植的一般过程

据我先前所接触的知识,移植一般是一下几个步骤:

  1. 下载源码
  2. 在现有平台上用目标平台的编译器编译源码(交叉编译)
  3. 得到可执行文件或一些动态库或其它东西

3. OpenCV的移植过程

3. 1下载源码

正点原子提供的是opencv-3.4.1,然后解压(在我的Ubuntu虚拟机中的~/OpenCV下)。并在同目录下创建 buildinstall文件夹。

嵌入式设备中OpenCV的移植

; 3.2 搭建编译环境

3.2.1 安装所需工具

安装cmake和cmake-gui, sudo apt-get install cmake cmake-qt-gui cmake-curses-gui

3.2.2 生成makefile文件

进入到build文件夹下面去,执行cmake-gui命令,开始配置OpenCV环境。具体配置参考正点原子的文档,然后配置完后会生成makefile。

先不要急着输入 make。首先在源码目录 opencv-3.4.1/3rdparty/protobuf/src/google/protobuf/stubs/common.cc这个文件下添加 #define HAVE_PTHREAD宏定义才可以编译的过。具体原因是 HAVE_PTHREAD 宏定义了 pthread 库。

嵌入式设备中OpenCV的移植

; 3.3 编译OpenCV源码

进入到build目录,输入 make -j 16开始编译。如果出现错误,先删除build目录下的所有文件,然后重新搭建编译环境。编译成功后,输入 make install将某些东西安装到install文件夹,最终如下:

嵌入式设备中OpenCV的移植

4. Qt例程使用OpenCV

正x原x提供的OpenCV Qt例程。将此文件夹(opencvdemo)放到install文件夹下去。至于为什么放到此文件夹下去是因为在工程 QOpenCV.pro文件中定义了lib库的路径是在 QOpenCV.pro../../lib下(我 修改成../lib/xxx)。当然你可以通过修改 QOpenCV.pro文件中LIBS的值来指定库文件的位置。

嵌入式设备中OpenCV的移植

需要注意的一点是:上图文件中的库是动态库,也就是说把这些文件拷贝到开发板上去后也要满足这样的要求(即QOpenCV这个程序所需的动态库在此文件上一层的上一层的lib文件夹中,否则会报动态库找不到的错误)。

嵌入式设备中OpenCV的移植

配置好 QOpenCV.pro文件后执行

source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

然后执行 qmake生成makefile,最后再执行make编译。编译完成后在当前目录生了可执行文件QOpenCV,把它和resource文件夹拷贝到开发板中去。

5. 运行例程

因为在Ubuntu虚拟机上编译正点原子提供的OpenCV Qt例程时用了动态库,所以需要把OpenCV/install/lib下的动态库拷贝到开发板的/lib下去。然后再把例程编译生成后的QOpenCV和resource文件夹拷贝到开发板中去,执行 /etc/init.d/psplash.sh关闭原来的桌面应用系统,最后执行 ./QOpenCV即可(关闭桌面程序后,可执行 /opt/qt5.5.1/apps/QDesktop/QDesktop &来重新启动。

报错说明:如果出现动态库找不到,就说明路径不对。因为前面的 QOpenCV.pro文件中定义的动态库在 ../lib中,所以要保证开发板中的lib也在 QOpenCV的../lib处。所以我们就可以通过改变 QOpenCVresource文件夹的位置来满足动态库在 QOpenCV../lib下。

嵌入式设备中OpenCV的移植

正x原x提供的例程在 E:\Embedded\Alpha Linux\阿尔法Linux开发板光盘资料(A盘)\opencvdemo

Original: https://blog.csdn.net/weixin_44360592/article/details/123611240
Author: CofCai
Title: 嵌入式设备中OpenCV的移植

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/702273/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球