文章目录
*
– 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. 移植的一般过程
据我先前所接触的知识,移植一般是一下几个步骤:
- 下载源码
- 在现有平台上用目标平台的编译器编译源码(交叉编译)
- 得到可执行文件或一些动态库或其它东西
3. OpenCV的移植过程
3. 1下载源码
正点原子提供的是opencv-3.4.1,然后解压(在我的Ubuntu虚拟机中的~/OpenCV下)。并在同目录下创建 build, install文件夹。
; 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 库。
; 3.3 编译OpenCV源码
进入到build目录,输入 make -j 16
开始编译。如果出现错误,先删除build目录下的所有文件,然后重新搭建编译环境。编译成功后,输入 make install
将某些东西安装到install文件夹,最终如下:
4. Qt例程使用OpenCV
正x原x提供的OpenCV Qt例程。将此文件夹(opencvdemo)放到install文件夹下去。至于为什么放到此文件夹下去是因为在工程 QOpenCV.pro
文件中定义了lib库的路径是在 QOpenCV.pro
的 ../../lib
下(我 修改成了 ../lib/xxx
)。当然你可以通过修改 QOpenCV.pro
文件中LIBS的值来指定库文件的位置。
需要注意的一点是:上图文件中的库是动态库,也就是说把这些文件拷贝到开发板上去后也要满足这样的要求(即QOpenCV这个程序所需的动态库在此文件上一层的上一层的lib文件夹中,否则会报动态库找不到的错误)。
配置好 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
处。所以我们就可以通过改变 QOpenCV
和 resource
文件夹的位置来满足动态库在 QOpenCV
的 ../lib
下。
正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/
转载文章受原作者版权保护。转载请注明原作者出处!