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

「OpenCV交叉编译」ubuntu to arm64

  • Ubuntu x86_64 交叉编译OpenCV 为 arm64
  • OpenCV4.5.5、cmake version 3.16.3
  • 交叉编译器 gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu
    可在arm或linaro官网下载所需版本,本文的交叉编译器可点击链接跳转下载
    Downloads | GNU-A Downloads – Arm Developer
    Linaro Releases
  1. 打开opencv源码文件夹,新建build文件夹
    • 若已存在build文件夹,说明之前编译过,可删除
  2. 打开CMake gui
    • 填写opencv安装路径
    • 填写opencv文件夹下刚创建的build路径,用于存放编译文件

    请添加图片描述

  3. 若没有配置交叉编译器的环境变量,需要手动为OpenCV指定交叉编译器的路径

    (若没有添加路径直接Configure会报错!此时需要在 File -> Delete Cache 清空缓冲再重新配置!)

    • 打开/home/alexios/OpenCV/opencv-4.5.5/platforms/linux/aarch64-gnu.toolchain.cmake

    • 设置编译器的路径,链接器ld不需要设置,CMake能够根据CMAKE_C_COMPILERCMAKE_CXX_COMPILER找到对应的链接器

    set(CMAKE_SYSTEM_PROCESSOR aarch64)
    set(GCC_COMPILER_VERSION "" CACHE STRING "GCC Compiler version")# 设置交叉编译工具链的路径
    set(TOOLCHAIN_PATH "/home/alexios/linux_ws/tool/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu" CACHE STRING "Path to custom toolchain")
    # 设置交叉编译器
    set(CMAKE_C_COMPILER "${TOOLCHAIN_PATH}/bin/aarch64-none-linux-gnu-gcc")
    set(CMAKE_CXX_COMPILER "${TOOLCHAIN_PATH}/bin/aarch64-none-linux-gnu-g++")set(GNU_MACHINE "aarch64-linux-gnu" CACHE STRING "GNU compiler triple")
    include("${CMAKE_CURRENT_LIST_DIR}/arm.toolchain.cmake")
    
  4. 点击Configure
    • 选择Unix Makefiles 下的指定交叉编译工具链文件夹

    请添加图片描述

    • 目标arm板为RK3588,arm64架构的,选择与开发板相同架构的cmake

    请添加图片描述请添加图片描述

  5. 配置OpenCV模块和CMake编译选项
    • CMAKE_INSTALL_PREFIX可指定安装路径,默认为build目录下的install

    • BUILD为构建、WITH为启用

    • 取消勾选opencl、opengl、cuda、qt

    • 勾选

      • WITH_V4L(vedio for linux)、INSTALL_C_EXAMPLES

      • 图像格式支持 BUILD_JPEG、BUILD_OPENJPEG、BUILD_PNG、BUILD_TIFF、WITH_TIFF、BUILD_WEBP、WITH_WEBP

      • BUILD_ITT(ITT 用于记录和优化性能,特别是多线程任务的调试)、BUILD_ZLIB(压缩)

      • WITH_GTK、WITH_GTK_2_X(GTK(GIMP Toolkit)作为其 GUI 后端的设置。GTK 是一个跨平台的图形用户界面工具包,OpenCV 使用它来实现窗口显示功能(如 imshow);如果同时启用,CMake 会优先使用 GTK 3(WITH_GTK),而忽略 GTK 2(WITH_GTK_2_X))

    • 再次点击Configure,继续配置直到没有任何红色报错即可

    • 点击Generate生成Makefile,即可关闭cmake-gui

        Install to:                    /home/alexios/OpenCV/opencv-4.5.5/build/install
      -----------------------------------------------------------------Configuring done
      Generating done
      
  6. 编译和安装
    • 回到build目录中
    make -j8 #编译
    make install #安装
    
    • install目录下即为交叉编译好的opencv库

相关文章:

「OpenCV交叉编译」ubuntu to arm64

Ubuntu x86_64 交叉编译OpenCV 为 arm64OpenCV4.5.5、cmake version 3.16.3交叉编译器 gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu 可在arm或linaro官网下载所需版本,本文的交叉编译器可点击链接跳转下载 Downloads | GNU-A Downloads – Arm Developer L…...

Stable Diffusion的解读(二)

Stable Diffusion的解读(二) 文章目录 Stable Diffusion的解读(二)摘要Abstract一、机器学习部分1. 算法梳理1.1 LDM采样算法1.2 U-Net结构组成 2. Stable Diffusion 官方 GitHub 仓库2.1 安装2.2 主函数2.3 DDIM采样器2.4 Unet 3…...

amd显卡和nVidia显卡哪个好 amd和英伟达的区别介绍

AMD和英伟达是目前市场上最主要的两大显卡品牌,它们各有自己的特点和优势,也有不同的适用场景和用户群体。那么,AMD显卡和英伟达显卡到底哪个好?它们之间有什么区别?我们又该如何选择呢?本文将从以下几个方…...

软件测试—— Selenium 常用函数(一)

前一篇文章:软件测试 —— 自动化基础-CSDN博客 目录 前言 一、窗口 1.屏幕截图 2.切换窗口 3.窗口设置大小 4.关闭窗口 二、等待 1.等待意义 2.强制等待 3.隐式等待 4.显式等待 总结 前言 在前一篇文章中,我们介绍了自动化的一些基础知识&a…...

为什么verilog中递归函数需要定义为automatic?

直接上代码 module automatic_tb;reg [7:0] value;initial begin #0 value < 8d5;#10 $display("result of automatic: %0d", factor_automatic(value));$display("result of static: %0d", factor_static(value));#50 $stop; endfunction reg[7:0] fa…...

23种设计模式-状态(State)设计模式

文章目录 一.什么是状态模式&#xff1f;二.状态模式的结构三.状态模式的应用场景四.状态模式的优缺点五.状态模式的C实现六.状态模式的JAVA实现七.代码解释八.总结 类图&#xff1a; 状态设计模式类图 一.什么是状态模式&#xff1f; 状态模式&#xff08;State Pattern&…...

EventListener与EventBus

EventListener JDK JDK1.1开始就提供EventListener&#xff0c;一个标记接口&#xff0c;源码如下&#xff1a; /*** A tagging interface that all event listener interfaces must extend.*/ public interface EventListener { }JDK提供的java.util.EventObject&#xff1…...

Facebook为什么注册失败了?该怎么解决?

有时候用户在尝试注册Facebook账号时可能会遇到各种问题&#xff0c;导致注册失败或遇到困难。小编会为大家分析Facebook注册失败的可能原因&#xff0c;并提供解决方法&#xff0c;帮助大家顺利完成注册流程。 一、Facebook注册失败的可能原因 1. 账号信息问题&#xff1a; …...

前端数据可视化思路及实现案例

目录 一、前端数据可视化思路 &#xff08;一&#xff09;明确数据与目标 &#xff08;二&#xff09;选择合适的可视化图表类型 &#xff08;三&#xff09;数据与图表的绑定及交互设计 &#xff08;四&#xff09;页面布局与样式设计 二、具体案例&#xff1a;使用 Ech…...

【DVWA】Brute Force暴力破解实战

问尔辈 何等样人 自摸心头 再来求我&#xff1b;若汝能 克存忠孝 持身正直 不拜何妨 1.Brute Force(Low) 相关的代码分析 if( isset( $_GET[ Login ] ) ) {// Get username$user $_GET[ username ];// Check the database$query "SELECT * FROM users WHERE user $…...

23种设计模式速记法

前言 在软件开发的过程中&#xff0c;设计模式作为解决常见问题的通用模板&#xff0c;一直是开发者的重要工具。尤其是在面临复杂系统架构和需求变化时&#xff0c;设计模式不仅能够提升代码的可复用性和扩展性&#xff0c;还能大大提高团队之间的协作效率。然而&#xff0c;…...

第7章硬件测试-7.3 功能测试

7.3 功能测试 7.3.1 整机规格测试7.3.2 整机试装测试7.3.3 DFX测试 功能测试包括整机规格、整机试装和整机功能测试&#xff0c;是整机结构和业务相关的测试。 7.3.1 整机规格测试 整机规格测试包括尺寸、重量、温度、功耗等数据。这些测试数据与设计规格进行比对和校验&…...

动态规划子数组系列一>等差数列划分

题目&#xff1a; 解析&#xff1a; 代码&#xff1a; public int numberOfArithmeticSlices(int[] nums) {int n nums.length;int[] dp new int[n];int ret 0;for(int i 2; i < n; i){dp[i] nums[i] - nums[i-1] nums[i-1] - nums[i-2] ? dp[i-1]1 : 0;ret dp[i…...

《Python浪漫的烟花表白特效》

一、背景介绍 烟花象征着浪漫与激情&#xff0c;将它与表白结合在一起&#xff0c;会创造出别具一格的惊喜效果。使用Python的turtle模块&#xff0c;我们可以轻松绘制出动态的烟花特效&#xff0c;再配合文字表白&#xff0c;打造一段专属的浪漫体验。 接下来&#xff0c;让…...

什么是RESTful API,有什么特点

RESTful API 概述 什么是 RESTful API&#xff1f; RESTful API 是基于 Representational State Transfer&#xff08;表现层状态转移&#xff09;架构风格的 Web 服务接口。REST 是一种设计风格&#xff0c;而不是具体的协议或标准。它定义了一组约束和最佳实践&#xff0c;…...

友思特新闻 | 友思特荣获广州科技创新创业大赛智能装备行业赛初创组优胜企业!

2024年11月19日&#xff0c;第十三届中国创新创业大赛&#xff08;广东广州赛区&#xff09;暨2024年广州科技创新创业大赛智能装备行业赛颁奖典礼隆重举行。 赛事奖项介绍&#xff1a;广州科技创新创业大赛智能装备行业赛 第十三届“中国创新创业大赛&#xff08;广东广州赛区…...

CSS中calc语法不生效

问题起因 在使用calc时发现无法生效&#xff0c;写法是&#xff1a; height:calc(100vh-100px);页面无效果&#xff0c;加空格后就发现有效果了&#xff1a; height:calc(100vh - 100px);这是为什么&#xff1f; calc是什么&#xff1f; css3 的计算属性&#xff0c;用于动态…...

国标GB28181视频平台EasyCVR视频融合平台H.265/H.264转码业务流程

在当今数字化、网络化的视频监控领域&#xff0c;大中型项目对于视频监控管理平台的需求日益增长&#xff0c;特别是在跨区域、多设备、高并发的复杂环境中。EasyCVR视频监控汇聚管理平台正是为了满足这些需求而设计的&#xff0c;它不仅提供了全面的管理功能&#xff0c;还支持…...

ES6 模板字符串详解

ES6 模板字符串详解 ES6&#xff08;ECMAScript 6&#xff09;引入了模板字符串&#xff08;Template Literals&#xff09;&#xff0c;这是一种新的字符串字面量语法&#xff0c;使用反引号&#xff08;&#xff09;来定义字符串。模板字符串不仅支持多行字符串&#xff0c;…...

浏览器插件启动本地程序

浏览器插件支持启动本地程序&#xff0c;且支持win、mac、linux多个平台&#xff0c;使用的是nativeMessaging。nativeMessaging官方api说明。nativeMessaging支持启动本地程序且进行通信。 我们直接拿官方提供的例子进行说明&#xff0c;github地址。 以win为例 1、添加注册…...

Chainlit前端定制化|通义千问1.5-1.8B-GPTQ-Int4私有化部署与UI二次开发教程

Chainlit前端定制化&#xff5c;通义千问1.5-1.8B-GPTQ-Int4私有化部署与UI二次开发教程 你是不是已经体验过各种在线大模型&#xff0c;但总感觉有些限制&#xff1f;比如数据隐私的担忧、网络延迟的困扰&#xff0c;或者想打造一个完全属于自己的、界面更符合业务需求的AI助…...

s2-pro开源大模型实战:低成本GPU部署语音合成服务完整流程

s2-pro开源大模型实战&#xff1a;低成本GPU部署语音合成服务完整流程 1. 前言&#xff1a;语音合成技术的新选择 语音合成技术正在改变我们与数字世界的交互方式。今天要介绍的s2-pro是Fish Audio开源的一款专业级语音合成模型镜像&#xff0c;它让高质量语音合成服务的部署…...

Windows下FFmpeg环境配置全攻略:从下载到视频剪辑实战

Windows下FFmpeg环境配置全攻略&#xff1a;从下载到视频剪辑实战 在数字内容创作爆发的时代&#xff0c;视频处理能力已成为开发者和创作者的必备技能。FFmpeg作为开源多媒体处理领域的"瑞士军刀"&#xff0c;其强大功能与跨平台特性使其成为处理音视频文件的首选工…...

Nanbeige 4.1-3B赋能微信小程序:打造智能客服对话机器人

Nanbeige 4.1-3B赋能微信小程序&#xff1a;打造智能客服对话机器人 最近在帮一个做电商的朋友琢磨怎么优化他们的客服系统。他们每天要处理大量重复的咨询&#xff0c;比如“什么时候发货”、“怎么退换货”&#xff0c;人工客服忙得团团转&#xff0c;用户还得排队等。这让我…...

AutoDock Vina特殊金属元素对接技术指南:从问题诊断到方案落地

AutoDock Vina特殊金属元素对接技术指南&#xff1a;从问题诊断到方案落地 【免费下载链接】AutoDock-Vina AutoDock Vina 项目地址: https://gitcode.com/gh_mirrors/au/AutoDock-Vina 问题溯源&#xff1a;金属元素对接的技术瓶颈 在分子对接实践中&#xff0c;科研人…...

HP-Socket技术演讲视频描述撰写指南:关键词与吸引力

HP-Socket技术演讲视频描述撰写指南&#xff1a;关键词与吸引力 【免费下载链接】HP-Socket High Performance TCP/UDP/HTTP Communication Component 项目地址: https://gitcode.com/gh_mirrors/hp/HP-Socket HP-Socket是一款高性能跨平台网络通信框架&#xff0c;专为…...

搭建专属汽车电子测试 AI 助手

专栏&#xff1a;《AI 汽车电子测试实战》第 15 篇 作者&#xff1a;一线汽车电子测试工程师 适合人群&#xff1a;想搭建私有 AI 助手的测试团队、关注数据安全的工程师开篇&#xff1a;为什么需要专属 AI 助手&#xff1f; 这是我上个月在某车企的 AI 部署项目中的真实经历。…...

uniapp中如何用lottie-miniprogram加载json动画?5分钟搞定炫酷效果

Uniapp中5分钟集成Lottie动画&#xff1a;从原理到实战的完整指南 在移动应用开发中&#xff0c;精美的动画效果往往能显著提升用户体验。对于Uniapp开发者来说&#xff0c;Lottie-miniprogram提供了一种高效的方式&#xff0c;可以直接加载设计师导出的JSON动画文件&#xff0…...

BlueROV2进阶:巧用ArduSub参数配置实现多舵机协同控制

1. 从单舵机到多舵机协同的跨越 第一次用Pixhawk控制单个舵机转动时的兴奋感还记忆犹新&#xff0c;但当真正开始构建BlueROV2这样的水下机器人时&#xff0c;你会发现单一舵机控制远远不够。想象一下这样的场景&#xff1a;机械爪需要精准开合&#xff0c;云台要平稳转动&…...

OpenClaw轻量化实践:nanobot镜像在树莓派上的部署指南

OpenClaw轻量化实践&#xff1a;nanobot镜像在树莓派上的部署指南 1. 为什么选择树莓派部署OpenClaw 去年夏天&#xff0c;我在整理家庭实验室时翻出了一台闲置的树莓派4B。这台曾经用来跑Home Assistant的小设备&#xff0c;现在有了新的使命——成为我的个人AI助手。当时市…...