找回密码
 注册
关于网站域名变更的通知
查看: 340|回复: 1
打印 上一主题 下一主题

迅为iTOP-i.MX6ULL开发板-移植OpenCv3.4.1

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-1-18 12:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x

本章节将介绍 OpenCV 的移植方法,及结合 Qt 例程去进一步学习 OpenCV 识别图像。本章节使用的资料已经放到了开发板网盘资料中,路径为:“11_Linux 系统开发进阶\86_章节_移植 OpenCv3.4.1 使用资料”。


0 C% k( ?: m  E+ g0 _/ l* F& K我们需要准备的资料:) u5 h/ N$ R/ x$ F8 s9 l8 `
1.开发板使用的是 i.MX6ULL 终结者,开发板里面是 Yocto 文件系统。
( Q( y+ S' H! x# o5 ~! e2.使用 Ubuntu16.04% w* |# x$ V9 D# ~5 [5 c
3.提供 opencv 源码“opencv-3.4.1.zip”4 u, T! O; v& Q: I, o/ P7 E3 ^4 j- g
4.QT 测试例程
8 T% x7 d0 S+ Z7 V- i0 F; V! y86.1  安装交叉编译工具0 w% {  g6 [$ s4 r# i1 |
移植的 QT 系统需要的交叉编译器就是我们编译 qt 的编译器,因为我们是 Yocto 系统,所以我们用编译 Yocto 的编译器来编译 OpenCV。交叉编译器为:gcc-linaro-4.9.4-2017.01-x86_64_ARM-linux-gnueabihf。设置交叉编译器请参考 i.MX6ULL 终结者-开发板使用手册 4.3 章节 搭建交叉编译环境。
4 r4 P2 V, R: ?1 ?  N+ q/ D86.2 建 搭建 OpenCV  的编译环境
1 R! V* R! V- U6 d1.在 Ubuntu 新建一个 opencv 文件夹。将迅为提供的 opencv-3.4.1 源码压缩包复制到 opencv 这个目录,解压。然后再 opencv 目录下新建 install,build 文件夹。build 文件夹是构建目录 ,install 文件夹是安装目录。如图 86.2.1 所示:

2.安装 cmake 和 cmake-gui 工具
4 y* E. v, y  B0 |4 ?sudo apt-get install cmake cmake-qt-gui cmake-curses-gui

安装完成提示安装成功,作者是已经安装过了,如图 86.2.3 所示:

3. 进入 build 目录下,执行指令 cmake-gui,开始配置 OpenCV 的环境执行完成后会出现图形化工具cmake-gui。指定我们源码的所在路径和构建目录。勾选 Advanced,再点击 Configure 或者 Generate。

图 86.2.4

4.选择 Unix Makefiles,然后选择 Specify options for cross-compiling,再点击 Next。

5.填写交叉编译器的路径,注意红色部分请填写自己的交叉编译器路径。+ C, f; c7 I5 p* R
Operation System:topeet
! O8 Y" W2 N8 A0 q$ pCompilers C:" w; C% K. S$ ?; M3 C( K+ K
/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
5 f- h: ^* ?( |. B/ eCompilers C++:
& e6 Z2 h2 \2 m! y+ D) Y/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++9 I  w% n3 J! q5 j
Targer Root:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/bin% d* v  p3 a4 z, [5 o1 F
指定交叉编译工具的具体路径,按个人路径指定,其他按图所示填写,如图 86.2.7 所示。

6. 我们还需要配置一些信息,点击如下图 CMAKE 处,在 CMAKE_EXE_LINKER_FLAGS 处添加上-lpthread -lrt -ldl。添加这些是指定依赖库的链接参数。

7.再在 CMAKE_INSTALL_PREFIX 处指定安装目录,我们在上面已经新建了 install 安装目录。我们直接指定到该目录即可。如果不指定,它会默认安装到 Ubuntu 系统目录/usr/local 下。这样会直接替换我们/usr/local 下的库。

8.至此我们配置完,现在我们需要生成 Makefile 等文件,我们先点击 Configure,再点击 Generat 就可以生成了。点击了 Generate 后看到信息像如图 86.2.10 一样,表明生成成功。若出现报错,请根据对话框里的内容指定的文件去自行去检查错误!一般都是交叉编译器路径不对造成的。配置完成生成文件后,我们点击左上角关闭这个图形化配置界面即可。

86.3 译 编译 OpenCV  源码. R, l! h3 G9 g$ Z# |+ F' l
1.在第 2 节配置完成后,首先在源码目录opencv-3.4.1/3rdparty/protobuf/src/google/protobuf/stubs/common.cc 这个文件下添加#define HAVE_PTHREAD 宏定义才可以编译的过。具体原因是 HAVE_PTHREAD 宏定义了 pthread 库。在如图 86.3.1位置添加即可。

2.修改完成后,返回于是 build 目录下,可以看到 bulid 目录下已经准备了构建文件。

3.我们直接输入 make -j 16 构建即可。

4.编译完成如图 86.3.4,如果有出错,先删除 build 目录下的所有文件,按第 2 节重新再来一次!

5.输入 make install 安装到指定目录* S) P- e/ @( E7 j% R
make install

安装成功如图

6.进入 install 目录下有如下几个目录表明成功。到此完成编译!

7 J$ t; O& T$ C, d$ E9 H9 ^# |

86.4  打包文件系统- s$ Q) L1 a# }2 c/ p$ |
1.将提供的QT文件下载完成后,放到 install 文件夹下。进入/QT/demo目录下。我们打开 opencv_pic.pro工程来看。" }9 T2 D, C" R* i4 l; q0 F+ e" Z
Ubuntu# vi opencv_pic.pro
; t) }: h4 Q+ ~7 }注意 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
, l( R2 D3 \+ Y7 B) m2 E8 m在 opencv_pic.pro 同目录下,执行 qmake 生成 Makefile,用于编译 Qt 工程,如图所示:

3.再执行 make 编译 Qt 工程,编译完成如图

4.编译完成后在当前目录生成可执行文件 opencv_pic,如图 所示。

5.我们需要把 opencv_pic 和 1.bmp 图片拷贝到开发板的/home/root/目录下。

然后把 home/topeet/opencv/install/lib 目录下也就是 opencv 的安装目录下的 lib 下的库文件拷贝到开发板 Yocto 系统的 lib/目录下,如图 86.4.6 所示。

6.然后我们使用命令 tar -vcjf ./rootfs.tar.bz2 .将文件系统打包

86.5  烧写文件系统
9 P2 y8 t) y' P+ r8 O1.烧写前,我们先来修改 mfgtools 烧写工具的一些配置。
( Y+ u2 [) Q" Z% ]* y如果您的板子是 EMMC 的,修改 cfg.init 如图 所示:

如果您的板子是 NAND 的,修改 cfg.init 如图所示:

2.将 rootfs.tar.bz2 通过 ssh 软件放入 mfgtools 烧写目录 mfgtools_for_6ULL\Profiles\Linux\OSFirmware\files\linux 下面,uboot 和 kernel 使用 i.MX6ULL 终结者光盘资料里开发板系统镜像下面的镜像,如图 所示路径的文件

3.拨码开关 2 键拨为 1,其他键为 0,设置成 USB 串行启动,然后点击下图按钮进行烧写。

烧写完成进度条会变成绿色,如图所示:

86.6  测试开发板
: J3 I( ~2 S% c& o9 `6 e& v如果您的板子是 EMMC 的,拨码开关拨成如图 86.6.1 所指箭头

如果您的板子是 NAND 的,拨码开关拨成如图 所指箭头

然后启动进入 uboot 模式,设置选择屏幕$ E$ m- J4 e( @2 z
5 寸屏幕:setenv lcdtype 5.0/ A, M" L. p+ K+ ^6 R7 O
9.7 寸屏幕:setenv lcdtype 9.7
% C' S9 U- j4 i7 l% |8 G4 t10.1 寸屏幕:setenv lcdtype 10.1
* I# ~9 Z" A& x$ Q9 ^塑胶壳 7 寸屏幕:setenv lcdtype 7.0
0 i, z2 u6 U  @9 G: {金属框 7 寸屏幕:setenv lcdtype 1024x600
  R/ |, a! y  @& ], [HDMI 显示器:Setenv lcdtype hdmi. _- r6 _7 B! c5 S
保存配置的命令:saveenv
, }6 a5 m2 Q+ `最后在输入重启命令:reset
. U' P. g. a: E! _" c! W5 y( T重启完毕,我们可以看到板子启动,串口控制台输入以下命令运行程序

最终在屏幕上显示图像


9 @. D" m" v* U$ [1 I, L

该用户从未签到

2#
发表于 2021-1-20 10:56 | 只看该作者
iTOP-i.MX6ULL开发板-移植OpenCv3.4.1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 19:00 , Processed in 0.187500 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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