本人电子专业研究生毕业,挣点零花钱,承接毕业设计或者课题项目,涉及树莓派,图像识别、视频传输、python语音识别、esp32单片机、qt界面、python、嵌入式Linux。有兴趣可以联系我:15555360357
主题:IMX6ULL系列学习记录-移植Opencv3.4.5
硬件平台:野火IMX6ULL
PC系统:ubuntu19.04
交叉编译器:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf
U-Boot:uboot-imx-rel_imx_4.1.15_2.1.0_ga
kernel:linux-imx-rel_imx_4.1.15_2.1.0_ga
devicetree:imx6ull-14x14-evk.dts
tslib:version 1.4
Qt:Qt5.6.0
Opencv:3.4.5
time:2019-11-29
1. 目的:把Opencv3.4.5 移植到imx6ull开发板上
根据之前的学习记录,从uboot->kernel、devicetree、根文件系统、Qt5.6.0都已经做好了,板子能正常运行,但最近看到大家说imx6ull能不能支持opencv,答案是肯定的,不然我就不会写这篇移植博客啦。
2.过程:
2.1 源文件下载
可以使用命令下wget https://github.com/opencv/opencv/archive/3.4.5.zip
,也可以从官方下载,点击下载,然后使用 unzip + 文件名 解压。
2.2 库安装
使用如下命令来安装对应的库
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev cmake-qt-gui
2.3 配置
1、进入opencv-3.4.5目录下,建立两个文件夹,分别是build,install_opencv,分别代表着临时配置目录(build),和最终生成目录(install_opencv)。
2、进入build目录,执行sudo cmake-gui命令,打开cmake窗口。
说明:
第一步:where is the source code:填写opencv源码目录
第二步:where is the source binaries:填写刚刚新建的build目录
第三步:点击configure进行配置。
注意这里都需要填写绝对路径。
根据图片选择,主要是配置成交叉编译,并且为unix系统,没有Linux选项的哈。
说明:我的交叉编译器是arm-linux-gnueabihf-gcc 4.9.4 ,可以arm-linux-gnueabihf-gcc -v查看版本和路径
,上图2中,填写交叉编译的版本,图3和图4是填写 arm-linux-gnueabihf-gcc 和 arm-linux-gnueabihf-g++ 的绝对路径,图5中是交叉编译绝对路径。最后点击 Finish进行配置。
注意,arm-linux-gnueabihf-gcc 和 arm-linux-gnueabihf-g++ 的绝对路径是交叉编译绝对路径下面的bin路径,看清楚了。
点击完Finish之后,会自动生成配置。但还需要修改相应的配置
第一个,修改生成的文件路径,这里选择之前手动创建的install_opencv
第二个,WITH_TIFF去掉勾选,一定不要选
第三个,WITH_GTK去掉勾选,一定不要选
最后编译配置
继上一步去掉勾选之后,点击Generate生成Makefile,然后编译
sudo make -j4
再安装
sudo make install
半个小时之后(看电脑配置了),会在刚刚创建的install_opencv目录里面看到bin include lib share
四个目录
然后把install_opencv拷贝到根文件系统根目录下。
然后修改根文件系统下面的 etc/profile
,在最后添加如图配置。
测试程序
自己使用Qt平台写了个简单的应用程序,里面使用到了Opencv库,功能:把彩色图转灰度,仅仅是做个测试而已。现象如下: