当前位置: 首页 > article >正文

【IMAX6U移植OpenCV】

IMAX6U移植OpenCV V1.3

  • 一 安装通用交叉编译器
    • 1.1 下载通用交叉编译器
    • 1.2 安装通用交叉编译器
    • 1.3 验证通用交叉编译器
  • 二 搭建 OpenCV 3.4.1 的编译环境
    • 2.1 下载 OpenCV 3.4.1 源码
    • 2.2 配置 OpenCV 环境
    • 2.3 编译 OpenCV 源码
  • 三 Qt 项目中加入OpenCV
    • 3.1 Qt 项目的 pro 文件OpenCV
    • 3.2 .h头文件加入以下内容,注根据所需要添加相应的头文件
  • 四 安装cmake 和cmake-gui 工具

一 安装通用交叉编译器

1.1 下载通用交叉编译器

Linaro 出品的交叉编译器
请根据个人 Ubuntu 系统的位数,选择对应版本下载即可。
在这里插入图片描述

1.2 安装通用交叉编译器

gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

1. sudo mkdir /usr/local/arm         //创建/usr/local/arm 文件夹,为下面安装到/usr/local/arm 这个文件夹做准备。
2. sudo tar xf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz -C /usr/local/arm/   //解压交叉编译器压缩包至/usr/local/arm 目录下
3. sudo vi /etc/profile   //在/etc/profile 下添加全局环境变量  添加交叉编译器
export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin

在这里插入图片描述

1.3 验证通用交叉编译器

  1. sudo apt-get install lsb-core lib32stdc++6 //要使用此编译器,还要在 Ubuntu 上安装一些库
  2. arm-linux-gnueabihf-gcc -v //查看安装的交叉编译器版本号.

二 搭建 OpenCV 3.4.1 的编译环境

安装完成交叉编译器后,才能开始搭建 OpenCV 的编译环境

2.1 下载 OpenCV 3.4.1 源码

OpenCV 官方源码
OpenCV 官方源码下载链接为 https://opencv.org/releases/ 本次选择的是 opencv-3.4.1 版本源码,

  • tar xf opencv-3.4.1.tar.gz
  • cd opencv-3.4.1/
  • ls
    在这里插入图片描述

2.2 配置 OpenCV 环境

  • mkdir build install //创建 build、 install 文件夹。 build 为构建文件夹, install 为安装文件夹
  • ls
    在这里插入图片描述
  • 安装 cmake 和 cmake-gui 工具 // 执行命令安装 sudo apt-get install cmake cmake-qt-gui cmake-curses-gui
  • cd build //进入 build 目录下,执行指令 cmake-gui,开始配置 OpenCV 的环境
  • cmake-gui
  • 指定我们源码的所在路径和构目录
    在这里插入图片描述
  • 选择 Unix Makefiles, 然后选择 Specify options for cross-compiling,再点击 Next。
    在这里插入图片描述
  • 填写交叉编译器的路径
    在这里插入图片描述
  • 下面就是您配置的信息,可以配置很多项,比如要编译哪些库等都可以在此选择编译或者不编译, 比如常见的 V4L2 都需要自己打开(V4L2 是处理摄像头类用的)。
    在这里插入图片描述
    点击 CMAKE,在 CMAKE_EXE_LINKER_FLAGS 处添加上“-lpthread -lrt -ldl”
    添加这些是指定依赖库的链接参数。
    上面的“-lxx”其中“-l”是大写字母“L”的小写字母“l”,不是数字“1”。
    在这里插入图片描述
    再在 CMAKE_INSTALL_PREFIX 处指定安装目录, 我们在上面已经新建了 install 安装目录。
    如果不指定,它会默认安装到 Ubuntu 系统目录/usr/local 下。
    再点击关闭。到这里我们已经完成配置
    在这里插入图片描述
    至此我们配置完, 现在我们需要生成 Makefile 等文件,我们先点击 Configure,再点击 Generate 就可以生成了。
    在这里插入图片描述

2.3 编译 OpenCV 源码

  1. 首先在源码目录 3rdparty/protobuf/src/google/protobuf/stubs/common.cc 这个文件下第 33 行添加#define HAVE_PTHREAD 宏定义才可以编译的过。
    具体原因是 HAVE_PTHREAD 宏定义了 pthread 库。在如下位置添加即可。
cd .. // 返回 opencv 源码顶层目录
vi 3rdparty/protobuf/src/google/protobuf/stubs/common.cc

在这里插入图片描述
2. 返回于是 build 目录下,可以看到 bulid 目录下已经准备了构建文件。我们直接输入 make 构建即可。

cd build/
make -j 16

编译完成如下图。 在这里插入图片描述
如果有编译出错,先删除 build 目录下的所有文件,按(## 2.2 配置 OpenCV 环境 )重新再来一次! cmake-gui 尽量一次配置成功。

  1. make install //把库安装创建的 install 目录下。 然后使用 ls 指令查看安装目录 install。
make install
ls ../install

安装成功和查看安装如下:
在这里插入图片描述
至此我们已经编译完成 OpenCV 了。 将当前目录下的 lib 文件夹下的内容拷贝到正点原子 I.MX6U 驱动指南里的 busybox 文件系统/usr/lib 下即可。

三 Qt 项目中加入OpenCV

3.1 Qt 项目的 pro 文件OpenCV

打开 Qt 项目的 pro 文件, 在里面添加如下内容。

INCLUDEPATH += /home/alientek/opencv/install/include
LIBS += ../../lib/libopencv_core.so \
../../lib/libopencv_highgui.so \
../../lib/libopencv_imgproc.so \
../../lib/libopencv_videoio.so \
../../lib/libopencv_imgcodecs.so

3.2 .h头文件加入以下内容,注根据所需要添加相应的头文件

#include <opencv2/imgproc/imgproc_c.h>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv/cv.h>

其中/home/alientek/opencv/install/include 需要改为自己的 OpenCV 路径 ,Qt 的 pro 文件需要 在上一章节 OpenCV 安装目录下的 lib 的前两级目录下才能正常使用!


四 安装cmake 和cmake-gui 工具

sudo apt-get install cmake cmake-qt-gui cmake-curses-gui

http://www.kler.cn/a/228803.html

相关文章:

  • [JavaScript] 运算符详解
  • 使用傅里叶变换进行图像边缘检测
  • Ubuntu 22.04 TLS 忘记root密码,重启修改的解决办法
  • 令牌主动失效机制实现——Redis登录优化
  • npm ERR! code CERT_HAS_EXPIRED
  • Docker私有仓库管理工具Registry
  • 15.1 项目实践_OA系统
  • 【RT-DETR有效改进】UNetv2提出的一种SDI多层次特征融合模块(细节高效涨点)
  • 浅谈QT的几种线程的使用和区别。
  • 如何部署Linux AMH服务器管理面板并结合内网穿透远程访问
  • 【AI数字人-论文】Geneface论文
  • H5调用安卓原生相机API案例
  • Java学习day29:线程池Pool中创建线程方式(面试必考!)
  • 《热辣滚烫》预售狂潮来袭,贾玲、马丽、杨紫三大女神联袂出演。
  • (4)【Python数据分析进阶】Machine-Learning模型与算法应用-回归、分类模型汇总
  • Java实现线程安全的几种方式:常量/数据私有/互斥同步/非阻塞同步
  • 【数据结构 10】位图
  • jmeter-问题一:关于线程组,线程数,用户数详解
  • 5分钟快速掌握 XML (Extensible Markup Language)
  • 【51单片机】开发板&开发软件(Keil5&STC-ISP)简介&下载安装破译传送门(1)
  • QT styleSheet——控件设置样式表
  • 【BBF系列协议】TR101 基于以太网的宽带聚合的迁移
  • 交友系统---让陌生人变成熟悉人的过程。APP小程序H5三端源码交付,支持二开。
  • Hudi学习 6:Hudi使用
  • 如何在Vue应用程序中使用Vue-Router来实现路由嵌套动画效果
  • C# 使用 MailKit 发送邮件(附demo)