使用最新版本Android NDK-r21 编译 opencv-3.3.1 + opencv_contrib-3.3.1

2023-11-13


由于新版本的NDK跟旧版本NDK编译的opencv存在兼容问题,所以需要使用最新的NDK重新编译opencv,方法步骤如下:
Android NDK-r21 编译 opencv-3.3.1 + opencv_contrib-3.3.1

1. sudo apt-get install cmake

2. 官网下载NDK: android-ndk-r21,SDK可以不需要.

3. 下载opencv和opencv_contrib,切换到3.3.1版本.
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
推荐更快的国内地址:
https://www.bzblog.online/wordpress/index.php/2020/03/09/opencvdownload/

4. 下载path包:
如果你要问我为什么,我只能告诉你,这个是我踩过的坑(参考:https://github.com/opencv/opencv_contrib/issues/1301).
https://github-production-repository-file-5c1aeb.s3.amazonaws.com/12756992/4520852?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20201212%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20201212T150158Z&X-Amz-Expires=300&X-Amz-Signature=63b69d60980b1e7f6828c312b27a2601fc49e758ddad57907753fc072d266a7e&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=12756992&response-content-disposition=attachment%3Bfilename%3Dpatch__.zip&response-content-type=application%2Fzip
解压到目录:
/home/gmy/disk0/xxxx/gitee/opencv/opencv-3.3.1/.cache/xfeatures2d/

5. 进入opencv源码目录,配置好相关变量路径,然后执行下面的脚本.

6. 地址: https://gitee.com/forme98/opencv_and_opencv_contrib.git

###########################################################################
#!/bin/sh

ndkdir=/home/gmy/Android/android-ndk-r21
android_toolchain_cmake=$ndkdir/build/cmake/android.toolchain.cmake
export ANDROID_NDK=/home/gmy/Android/android-ndk-r21
#arm_abi=arm64-v8a
arm_abi=armeabi-v7a
androidSdkAPI=24
opencv_contrib_dir=/home/gmy/disk0/xxxx/gitee/opencv/opencv_contrib-3.3.1/modules
opencv_dir=/home/gmy/disk0/xxxx/gitee/opencv/opencv-3.3.1

cd $opencv_dir
rm -rf build && mkdir build
cp build.sh build/
cd build/

cmake $opencv_dir -DCMAKE_TOOLCHAIN_FILE=${android_toolchain_cmake} -DANDROID_ABI=$arm_abi -DANDROID_STL=c++_static -DCMAKE_BUILD_TYPE=Release -DANDROID_NATIVE_API_LEVEL=android-$androidSdkAPI -DANDROID_PLATFORM=$androidSdkAPI -DOPENCV_EXTRA_MODULES_PATH=$opencv_contrib_dir

make -j12 && make install

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用最新版本Android NDK-r21 编译 opencv-3.3.1 + opencv_contrib-3.3.1 的相关文章

  • Android STFP 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在我的 Android 项目中使用 SFTP 安卓已经有了吗 SFTP 库 还是我必须实现它 I
  • Android浏览器上的Web应用程序宽度问题

    所以到目前为止我只在 Android 浏览器上遇到过这个问题 基本上我的网站几乎一直运行良好 而且我还没有在 Dolphin Opera 或 Skyfire 上看到这个问题 但偶尔当我从手机主屏幕之一上的书签重新打开 Android 浏览器
  • Mesibo 通话 UI 未更新

    我正在尝试更改 Mesibo Call UI 的配置 但它并没有改变 我尝试如下 MesiboCallConfig mesiboCallConfig new MesiboCallConfig mesiboCallConfig backgro
  • Android/Java 创建辅助类来创建图表

    Goal 创建用于图形生成的辅助类 背景 我有 3 个片段 每个片段收集一些传感器数据 加速度计 陀螺仪 旋转 并使用 GraphView 绘制图表 以下是其中一个片段的代码 该代码当前工作正常 public class Gyroscope
  • Android Accessibility 执行触摸操作

    我想知道是否可以使用 Android 辅助功能服务在屏幕上的位置执行触摸操作 例如 Bundle arguments new Bundle arguments putInt coord X X value arguments putInt
  • 如何更改对话框的默认黑色暗淡背景“颜色”(而不是暗淡量)?

    这是随机显示的图像Dialog在网上找到的 我一直在实施一个自定义Dialog 我可以处理对话框上的几乎所有内容 除了对话框本身下方的默认黑色昏暗背景之外 但在其后面的整个屏幕上 基本上我想改变它color和阿尔法值 我一直在 StackO
  • AOSP 中 android.Build.SERIAL 何时何地生成?

    我知道android Build SERIAL是在第一次设备启动时生成的 但我无法准确定位位置和时间 我正在建造AOSP Jelly Bean Android平板电脑 nosdcard 第二个问题 这个是序列号吗 really对所有人来说都
  • 如何将 Google Now 搜索栏添加到我的应用程序中?

    谷歌刚刚将其搜索栏从 Google Now 引入到了 Play 商店应用程序中 如下面的 gif 所示 如何将这个操作栏搜索栏实现到我自己的应用程序中 我想要 style 汉堡动画 从工具栏按钮访问 麦克风按钮 对棒棒糖设备的连锁反应 我已
  • 当编辑文本获得焦点时更改边框颜色

    我想知道当编辑文本聚焦时如何更改它的边框颜色 目前它看起来像这样 我尝试过在SDK中检查源图片 但我无法理解它 我也尝试过使用xml 但无法仅更改边框颜色 如果我找到源图片 我可以在 Photoshop 中编辑以更改颜色 有什么关于如何执行
  • Flutter Spotify Api 身份验证

    我需要在使用 Spotify api 的 Flutter 应用程序中对用户进行身份验证 我使用 flutter web auth 打开 WebView 并让用户在那里登录 我无法返回应用程序 在 Spotify 仪表板中 我将回调 Uri
  • cordova插件条码扫描仪打不开扫描

    我的条形码扫描仪插件有问题 我不是天才 我不太了解如何编写网络应用程序 我使用phonegap和cordova 并且尝试制作一个网络应用程序 在单击链接后扫描条形码 我之前已经使用此命令行安装了该插件 cordova plugin add
  • 无法在 Java 中输出正确的哈希值。怎么了?

    在我的 Android 应用程序中 我有一个 SHA256 哈希值 我必须使用 RIPEMD160 消息摘要算法进一步对其进行哈希值 我可以输出任何字符串的正确 sha256 和ripemd160 哈希值 但是当我尝试使用ripemd160
  • Android - 正确使用 invalidateOptionsMenu()

    我一直在寻找很多invalidateOptionsMenu 我知道它的作用 但我想不出这种方法在现实生活中有用的任何例子 我的意思是 例如 假设我们要添加一个新的MenuItem to our ActionBar 我们可以简单地获取菜单on
  • 在尝试使用 GPS 之前如何检查 GPS 是否已启用

    我有以下代码 但效果不好 因为有时 GPS 需要很长时间 我该如何执行以下操作 检查GPS是否启用 如果启用了 GPS 请使用 GPS 否则请使用网络提供商 如果 GPS 时间超过 30 秒 请使用网络 我可以使用时间或 Thread sl
  • 使用 AndroidX ExifInterface 从图像中检索 GPS EXIF 数据?

    我的目标是 Android 13 并使用新的照片选择器 https developer android com training data storage shared photopicker检索图像 例如 val photoPicker
  • 在上下文操作模式下选择时,ListView 项目不会在视觉上“突出显示”

    我关注了 Android 官方网站创建上下文操作菜单的教程 http developer android com guide topics ui menus html CAB 使用下面的代码 当我长按我的 ListView 项目之一时 它确
  • Android BLE 扫描永远找不到设备

    几天以来 我尝试在我的应用程序中实现 BLE 连接 我知道我尝试连接的设备功能齐全 因此问题一定是我的代码 我用BluetoothLeScanner startScan 方法 但回调方法永远不会被调用 public void startSc
  • firebase中按范围查询

    我有一个食品价格范围滑块 根据滑块的最小值和最大值 我想显示此范围内的食品 滑块代码 multiSlider setOnThumbValueChangeListener new MultiSlider SimpleChangeListene
  • 画布:尝试使用回收的位图错误

    我是一个相当新的程序员 所以任何建议将不胜感激 我有一个类 每次调用它时都会在循环中运行 AsyncTask AsyncTask 看起来像这样 public class LoadImageTask extends AsyncTask
  • 在DialogFragment中,onCreate应该做什么?

    我目前正在摆弄 DialogFragment 以学习使用它 我假设相比onCreateView onCreate 可以这样做 public void onCreate Bundle savedInstanceState super onCr

随机推荐

  • 6.基于STM32C8T6的四旋翼无人机的飞控制作----实践操作1,AD电路板绘制-前期准备

    飞控的各种芯片是焊接在电路板上的 电路板是各种传感器和接口的载体 电路板的设计过程也是极其考验耐心和仔细程度的 在大公司里都是每个部门负责其中的一部分工作 如原理图设计 布局布线 测试等等 在小公司和大学生的设计中 经常需要一个人走完全部的
  • 【Linux杂学】CMake:编写 CMakeLists

    CMake官网 掌握CMake 1 变量 CMake 变量名称区分大小写 且只能包含字母数字字符和下划线 CMAKE 变量 存储均为字符串 是CMake 自定义变量 命名应避开 set 可设变量值 第一参数是变量名 其余参数是值 多个参数被
  • Kylin 大数据下的OLAP解决方案和行业典型应用

    最近工作中应用到了 Kylin 因此调研了 Kylin的原理和行业应用 本文参考了官网和众多其他公司中 Kylin的应用案例 文末给出了出处 希望对大家有帮助 Apache Kylin的原理和技术架构 Apache Kylin 从数据仓库中
  • 火狐浏览器关闭百度热榜(屏蔽网站特定元素)

    2023 1 26更新 火狐浏览器不能下载 uBlock Origin 解决方法 https github com AdguardTeam AdguardBrowserExtension releases How to install be
  • 一、voc数据集按比例划分train、val

    下载的voc数据集 images annotations 经下代码 按比例划分成 只需要修改中文批注部分路 import os import sys import random import shutil if name main trai
  • Geforce 错误代码 ERROR CODE:0x0003问题方法

    笔者在360驱动大师安装了geforce驱动 打开geforce遇到报错0x0003 重启和重装都无效 解决办法是到nvidia官网重新安装了官网的geforce驱动 然后就能打开了
  • ARP协议

    一 ARP协议的简介 1 在网络通讯时 源主机的应用程序只知道目的主机的IP地址和端口号 却不知道目的主机的硬件地址 而数据包首先是被网卡接收到再去处理上层协议的 如果接收到的数据包的硬件地址与本机不符 则直接丢弃 因此在通讯前必须获得目的
  • pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn pym

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题 有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容居中 居左 居右 Sma
  • HCIP——OSPF知识点

    目录 一 OSPF协议的简介 二 OSPF的五种数据包 三 OSPF协议的7种状态机 四 OSPF 的工作过程 五 OSPF的基础配置 六 扩展配置 七 OSPF的LSA 八 OSPF的不规则区域 一 OSPF协议的简介 Ospf 开放式最
  • 3D渲染速度慢,花重金买显卡还是用云渲染更划算

    3D渲染对建筑师和设计师来说并不陌生 3D渲染的过程中出现渲染卡顿 特殊材质难以渲染 或者本地配置不足 本地渲染资源不够时 常常会影响工作效率 本文比较了3D渲染时 为提高工作效率 买显卡还是用云渲染更划算 希望对大家有帮助 3D渲染速度慢
  • 电脑麦克风输入没声音,如何解决

    文章目录 一 麦克风输入没声音的原因 二 解决办法 1 打开麦克风隐私权限 2 设置更换输入设备 3 打开麦克风设置 4 更新声卡驱动 重启电脑 5 设备损坏 更换设备 一 麦克风输入没声音的原因 麦克风没声音 麦克风设置问题或硬件损坏问题
  • 【数据集】浙大动态人类3d数据集LightStage

    LightStage LightStage是一个多视图数据集 在NeuralBody中提出 该数据集使用具有 20 同步摄像头的多摄像头系统捕获多个动态人类视频 人类执行复杂的动作 包括旋转 太极 手臂摆动 热身 拳击和踢腿 我们提供使用E
  • innodb存储引擎

    文章目录 1 innodb存储引擎概述 2 innodb体系架构 2 1后台线程 2 2内存 1 缓冲池 2 LRU list 和 Flush list 和Free list 3 重做日志缓冲 4 额外的内存池 2 4Checkpoint技
  • 在AIX4.3.3 ; AIX5.1 和 AIX5.2上安装OpenSSH

    在AIX4 3 3 AIX5 1 和 AIX5 2上安装OpenSSH 在AIX4 3 3 AIX5 1 和 AIX5 2上安装OpenSSH 一 在IBM AIX4 3 3 上安装OpenSSH At 4 3 3 the openSSH
  • 一战上岸北京211 初试+复试 408错题笔记

    趁着现在还记着点复试的内容我先把复试的内容捋一遍 先是政治问题 都是大概意思 假如导师给你分配的事情比较多 你心情会发生什么样的变化 怎么看待近两年中国的抗疫历程 我国把人民生命健康放在第一位说明了什么 怎么看待网络打赏行为 应该还有一个问
  • 树莓派Ubuntu20.04安装ros系统

    第一位大佬的博文 第二位大佬的博文 首先设置软件源 这里可以是官方源也可以是镜像 由于我官方源就成功了 所以没用镜像源 sudo sh c echo deb http packages ros org ros ubuntu lsb rele
  • AI实战训练营(Class 5)MMPretrain代码实战

    AI实战训练营 Class 5 MMPretrain代码实战 1 安装MMPretrain 首先安装openmim工具 从源码安装mmpretrain 通过下面的命令安装多模态版本的 mmpretrain 2 熟悉MMPretrain 猫狗
  • Traceback (most recent call last): File "", line 1, in ImportError: No module named

    在学习python的过程中会遇到如下错误 gt gt gt import mytest Traceback most recent call last File
  • RabbitMQ 消息可靠性投递+消费

    RabbitMQ 消息可靠性投递 消费 任何消息中间件发消息投递的可靠性都是开发者选择的重要参考依据 我们希望的是发送的每一条消息都是可以被消费者正确处理的 但是没有哪个消息中间件可以保证消息一定 100 投递成功 那么如果消息投递失败我们
  • 使用最新版本Android NDK-r21 编译 opencv-3.3.1 + opencv_contrib-3.3.1

    由于新版本的NDK跟旧版本NDK编译的opencv存在兼容问题 所以需要使用最新的NDK重新编译opencv 方法步骤如下 Android NDK r21 编译 opencv 3 3 1 opencv contrib 3 3 1 1 sud