【IMAX6U移植OpenCV】

news2025/2/4 20:48:37

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.coloradmin.cn/o/1427169.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis单机-主从集群-哨兵集群-分片集群 搭建教程

Redis集群 本章是基于CentOS7下的Redis集群教程&#xff0c;包括&#xff1a; 单机安装RedisRedis主从Redis分片集群 1.单机安装Redis 首先需要安装Redis所需要的依赖&#xff1a; yum install -y gcc tclredis-6.2.4.tar.gz 然后将Redis安装包上传到虚拟机的任意目录&am…

2024美赛A题完整思路代码分析:建立竞争机理方程+遗传算法优化

A题是自由度比较大的场景限定下的模型构建&#xff0c;相对比较容易&#xff0c;核心是找到现有的成熟的数学模型&#xff0c;然后找到合适的数据进行证明得到结论&#xff0c;估计大部分是目标优化问题。&#xff08;不限制专业&#xff09; B题属于较为经典的物理建模&#…

Linux基础知识合集

整理了一下学习的一些关于Linux的一些基础知识&#xff0c;同学们也可以通过公众号菜单栏查看&#xff01; 一、基础知识 Linux基础知识 Linux命令行基础学习 Linux用户与组概念初识 Linux文件与目录权限基础 Linux中文件内容的查看 Linux系统之计划任务管理 二、服务器管理 Vm…

【靶场实战】Pikachu靶场XSS跨站脚本关卡详解

Nx01 系统介绍 Pikachu是一个带有漏洞的Web应用系统&#xff0c;在这里包含了常见的web安全漏洞。 如果你是一个Web渗透测试学习人员且正发愁没有合适的靶场进行练习&#xff0c;那么Pikachu可能正合你意。 Nx02 XSS跨站脚本概述 Cross-Site Scripting 简称为“CSS”&#xff…

HTTP(Java web方向补充篇)

HTTP&#xff08;Java web方向补充篇&#xff09; HTTP简介 概念&#xff1a;Hyper Text Transfer Protocol,超文本传输协议&#xff0c;规定了浏览器和服务器之间数据传输的规则 HTTP协议特点&#xff1a; 基于TCP协议&#xff1a;面向连接&#xff0c;安全基于请求-响应模…

C语言指针学习 之 指针是什么

前言 指针是C语言中一个重要概念&#xff0c;也是C语言的一个重要特色&#xff0c;正确而灵活地运用指针可以使程序简洁、紧凑、高效。每一个学习和使用C语言的人都应当深入的学习和掌握指针&#xff0c;也可以说不掌握指针就没有掌握C语言的精华。 一、什么是指针 想弄清楚什…

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(十六)

商家端订单管理模块 1. 订单搜索1.1 需求分析和设计1.2 代码实现1.2.1 admin/OrderController1.2.2 OrderService1.2.3 OrderServiceImpl 2. 各个状态的订单数量统计2.1 需求分析和设计2.2 代码实现2.2.1 admin/OrderController2.2.2 OrderService2.2.3 OrderServiceImpl2.2.4 …

python执行linux系统命令的三种方式

前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 1. 使用os.system 无法获取命令执行后的返回信息 import osos.system(ls)2. 使用os.popen 能够获取命令执行后的返回信息 impor…

红队渗透靶机:LEMONSQUEEZY: 1

目录 信息收集 1、arp 2、nmap 3、nikto 4、whatweb 目录扫描 1、dirsearch 2、gobuster WEB phpmyadmin wordpress wpscan 登录wordpress 登录phpmyadmin 命令执行 反弹shell 提权 get user.txt 信息收集 本地提权 信息收集 1、arp ┌──(root㉿ru)-[~…

Python如何运用爬虫爬取京东商品评论

寻找数据真实接口 打开京东商品网址(添加链接描述) 查看商品评价。我们点击评论翻页&#xff0c;发现网址未发生变化&#xff0c;说明该网页是动态网页。 我们在浏览器右键点击“检查”&#xff0c;&#xff0c;随后点击“Network”&#xff0c;刷新一下&#xff0c;在搜索框中…

【实战系列----消息队列 数据缓存】rabbitmq 消息队列 搭建和应用

线上运行图&#xff0c;更新不算最新版&#xff0c;但可以使用修改线程等补丁功能&#xff0c;建议使用新版本。 远程服务器配置图: 这个可以更具体情况&#xff0c;因为是缓存队列理所当然 内存越大越好&#xff0c;至于核心4核以上足够使用。4核心一样跑 这里主要是需要配置服…

Linux下gcc的使用与程序的翻译

gcc和程序的翻译过程 gcc介绍程序的翻译过程预编译编译汇编链接 命令行式宏定义 gcc介绍 gcc是一款编译C语言编译器&#xff0c;可以把我们用vim写的代码编译成可执行程序。编译C用g进行编译&#xff0c;C的文件后缀是test.cc或test.cpp或test.cxx 如果要安装g就执行以下命令 …

QPL:一种新型的Text-to-SQL任务中间表示形式

导语 本文提出了一种叫做Query Plan Language (QPL)的语言&#xff0c;用来将复杂SQL语句分解为更加简单的子语句。QPL具有以下优势&#xff1a;1&#xff09;可以转述为简单问题&#xff0c;从而创建了一个 < 复杂问题&#xff0c;分解问题 > <复杂问题&#xff0c…

在Debian11安装Proxmox VE 7及设置GPU工作环境

我们在测试大模型&#xff0c;深度学习的过程中&#xff0c;可能遇到的情况就是不断的清空系统&#xff0c;避免老系统中安装的软件对测试系统造成影响&#xff0c;导致测试结果不准确或莫名报错。今天为小伙伴们介绍使用PVE7做成一个人工智能开发和测试的平台&#xff0c;你可…

【安装记录】Chrono Engine安装记录

本文仅用于个人安装记录。 官方安装教程 https://api.projectchrono.org/8.0.0/tutorial_install_chrono.html Windows下安装 windows下安装就按照教程好了。采用cmake-gui进行配置&#xff0c;建议首次安装只安装核心模块。然后依此configure下irrlicht&#xff0c;sensor…

maven代码规范检查(checkstyle、findbugs)

maven代码规范检查 前言一、使用checkstyle插件1. maven-checkstyle-plugin 介绍2. 接入方式3. 如何排除某个类、包下面的文件不进行检查使用suppressionsLocation 4. 如何关闭 二、使用findbugs插件1.findbugs-maven-plugin介绍2. 接入方式3. 如何排除某个类、包下面的文件不进…

ENSP路由器打不开,查看virtualBox,故障机是 AR_Base

AR_Base错误代码为&#xff1a;Raw-mode is unavailable courtesy of Hyper-V. (VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT). 参考virtualBox解决不能为虚拟电脑 AR_Base 打开一个新任务. Raw-mode is unavailable courtesy of Hyper-V. win11亲测有用。_不能为虚拟电脑ar_base打…

day37WEB攻防-通用漏洞XSS跨站权限维持钓鱼捆绑浏览器漏洞

目录 XSS-后台植入 Cookie&表单劫持&#xff08;权限维持&#xff09; 案例演示 XSS-Flash 钓鱼配合 MSF 捆绑上线 1、生成后门 2、下载官方文件-保证安装正常 3、压缩捆绑文件-解压提取运行 4、MSF 配置监听状态 5、诱使受害者访问 URL-语言要适当 XSS-浏览器网马…

Redis核心技术与实战【学习笔记】 - 6.Redis 的统计操作处理

1.前言 在 Web 业务场景中&#xff0c;我们经常保存这样一种信息&#xff1a;一个 key 对应了一个数据集合。比如&#xff1a; 手机 APP 中的每天用户登录信息&#xff1a;一天对应一系列用户 ID。电商网站上商品的用户评论列表&#xff1a;一个商品对应了一些列的评论。用户…

PyTorch识别验证码

## 一、生成测试集数据pip install captcha common.py import random import time captcha_array list("0123456789abcdefghijklmnopqrstuvwxyz") captcha_size 4from captcha.image import ImageCaptchaif __name__ __main__:for i in range(10):image ImageC…