搜索

121

主题

128

帖子

665

积分

网站编辑

Rank: 8Rank: 8

积分
665
发表于 2021-6-4 17:31:47 5625 浏览 0 回复

iTOP-i.MX6开发板QT系统移植OpenCv3.4.1

本章节将介绍 OpenCV 的移植方法,及结合 Qt 例程去进一步学习 OpenCV识别图像。相关的配套资料在网盘资料“iTOP-i.MX6开发板资料汇总(不含光盘资料)\08_iTOP-i.MX6开发板Linux系统开发资料\21-QT系统移植OpenCv3.4.1”目录。我们需要准备的资料:
1.开发板使用的是i.MX6Q 开发板,开发板里面是Qt5.7文件系统,其他系统移植方法也同样适用。
2.使用Ubuntu14.04
3.提供opencv源码“opencv-3.4.1.zip”
4.QT测试例程
1 安装交叉编译工具
移植的 QT 系统需要的交叉编译器就是我们编译opencv的编译器,交叉编译器为:arm-2014.05。设置交叉编译器请参考i.MX6Q开发板使用手册21.1章节搭建交叉编译环境。
2 搭建 OpenCV 的编译环境
1.在 Ubuntu 新建一个 opencv3.4.1的文件夹。将迅为提供的opencv-3.4.1 源码压缩包复制到opencv3.4.1 这个目录,解压。然后再opencv3.4.1目录下新建install,build文件夹。build 文件夹是构建目录 ,install 文件夹是安装目录。如下图所示:
2.安装 cmake 和 cmake-gui 工具
sudo apt-get install cmake cmake-qt-gui cmake-curses-gui
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml3144\wps10.jpg
安装完成提示安装成功,如下图所示:
3.进入 build 目录下,执行指令 cmake-gui,开始配置 OpenCV 的环境执行完成后会出现图形化工具 cmake-gui。指定我们源码的所在路径和构建目录。勾选 Advanced,再点击 Configure 或者 Generate。
4.选择 Unix Makefiles,然后选择 Specify options for cross-compiling,再点击 Next。
5.填写交叉编译器的路径,注意红色部分请填写自己的交叉编译器路径。
Operation System:topeet
Compilers C: /usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-gcc
Compilers C++: /usr/local/arm/arm-2014.05/bin/arm-none-linux-gnueabi-g++
Targer Root:/usr/local/arm/arm-2014.05/arm-none-linux-gnueabi/bin
指定交叉编译工具的具体路径,按个人路径指定,其他按图所示填写,如下图所示。
点击finish按钮后,如下图所示:
6. 我们还需要配置一些信息,点击如下图 CMAKE 处,在 CMAKE_EXE_LINKER_FLAGS 处添加上
-lpthread -lrt -ldl。添加这些是指定依赖库的链接参数。
7. 再在CMAKE_INSTALL_PREFIX 处指定安装目录,我们在上面已经新建了install安装目录。我们直接指定到该目录即可。如果不指定,它会默认安装到 Ubuntu 系统目录/usr/local 下。这样会直接替换我们/usr/local 下的库。
8.至此我们配置完,现在我们需要生成 Makefile 等文件,我们先点击 Configure,再点击 Generat就可以生成了。点击了 Generate 后看到信息像如下图所示一样,表明生成成功。若出现报错,请根据对话框里的内容指定的文件去自行去检查错误!一般都是交叉编译器路径不对造成的。配置完成生成文件后,我们点击左上角关闭这个图形化配置界面即可。
3 编译 OpenCV 源码
1. 在第2节配置完成后,首先在源码目录 opencv-3.4.1/3rdparty/protobuf/src/google/protobuf/stubs/common.cc 这个文件下添加#define HAVE_PTHREAD 宏定义才可以编译的过。具体原因是 HAVE_PTHREAD 宏定义了 pthread 库,在如下图所示位置添加即可。
2. 修改完成后,返回于是 build 目录下,可以看到bulid目录下已经准备了构建文件。
3. 我们直接输入make -j 8构建即可。
4.编译完成如下图所示,如果有出错,先删除build 目录下的所有文件,按第2节重新再来一次!
5.输入 make install 安装到指定目录
make install
安装成功如
6.进入 install 目录下有如下几个目录表明成功。到此完成编译!
4 编译QT
1.将提供的QT文件下载完成后,放到 install 文件夹下。进入/QT/demo目录下。我们打开 opencv_pic.pro工程来看。
Ubuntu# vi opencv_pic.pro
注意 INCLUDEPATH 需要修改为自己 OpenCV 安装文件夹下的 include 路径!我们修改好后,将开始编译这个 Qt 工程
2.搭建完成后。在Ubuntu终端执行下面的指令来使能 Qt 交叉编译的环境变量。
Ubuntu# source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
在 opencv_pic.pro 同目录下,执行 qmake 生成 Makefile,用于编译 Qt 工程,如下图所示:
3.再执行 make编译 Qt 工程,编译完成如下图所示:
4. 编译完成后在当前目录生成可执行文件 opencv_pic,如下图所示。
5.我们需要把opencv_pic和 1.bmp 图片拷贝到开发板的/home/topeet/目录下。
然后把home/topeet/iMX6Q/opencv3.4.1/install/lib目录下也就是opencv的安装目录下的lib下的库文件拷贝到开发板QT5.7系统的lib/目录下,如图 所示。
5 测试开发板
重启完毕,我们可以看到板子启动,串口控制台输入命令“./opencv_pic”运行程序opencv_pic,发现出现这样的错误,这是由于/lib/libstdc++.so.6文件找不到,我们去编译器文件夹下找到此文件和他链接的源文件,将这两个文件拷贝到开发板系统的lib目录下,本文档对应的资料包里面也有提供。
再次执行命令“./opencv_pic”,如下图所示。如果提示没有权限执行,要赋予文件权限。
最终在屏幕上显示图像,如下图所示。图片的大小可以在QT demo源码里面调节大小。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

登录或注册

官方客服

QQ:2551456065

官方QQ群

195631883

扫一扫关注迅为公众号

群号652692981

 
快速回复 返回顶部 返回列表