Ubuntu 上编译opencv_contrib模块for Android
https://blog.csdn.net/ipfpm/article/details/81132144
【ubuntu】Ubuntu中Android SDK下载跟配置 android24的版本
(1) 安装ADNORID SDk环境
https://developer.android.com/studio
1.1 安装JAVA环境
https://cloud.tencent.com/developer/article/1162527
https://www.howtoing.com/how-to-install-java-with-apt-on-ubuntu-18-04
OpenJDK 8
Java 8是目前的长期支持版本,虽然公共维护在2019年1月结束,但仍然得到广泛支持。要安装OpenJDK 8,请执行以下命令:
sudo apt install openjdk-8-jdk
验证这是与安装
java -version
也可以只安装JRE,你可以通过执行sudo apt install openjdk-8-jre
。
OpenJDK 10/11
Ubuntu的存储库包含一个安装Java 10或11的软件包。在2018年9月之前,该软件包将安装OpenJDK 10.一旦Java 11发布,该软件包将安装Java 11。
要安装OpenJDK 10/11,请执行以下命令:
sudo apt install openjdk-11-jdk
要仅安装JRE,请使用以下命令:
sudo apt install openjdk-11-jre
接下来,让我们看看如何安装Oracle的官方JDK和JRE。
1.2 配置JAVA_HOME
设置JAVA_HOME
环境变量
许多使用Java编写的程序使用JAVA_HOME
环境变量来确定Java安装位置。
要设置此环境变量,请首先确定Java的安装位置。使用update-alternatives
命令:
$ sudo update-alternatives --config java
此命令显示Java的每个安装及其安装路径:
There are 3 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 auto mode
1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 manual mode
2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
3 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081 manual mode Press <enter> to keep the current choice[*], or type selection number:
在这种情况下,安装路径如下:
- OpenJDK 11位于
/usr/lib/jvm/java-11-openjdk-amd64/bin/java.
- OpenJDK 8位于
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
。 - Oracle Java 8位于
/usr/lib/jvm/java-8-oracle/jre/bin/java
。
从您想要的安装中复制路径。然后使用nano
或您喜欢的文本编辑器打开/etc/environment
:
$ sudo nano /etc/environment
在此文件的末尾,添加以下行,确保使用您自己复制的路径替换突出显示的路径:
/etc/environment
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64/bin/java"
修改此文件将为系统上的所有用户设置JAVA_HOME
路径。
保存文件并退出编辑器。
现在重新加载此文件:
$ source /etc/environment
验证是否已设置环境变量:
$ echo $JAVA_HOME
您将看到刚刚设置的路径:
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
其他用户需要执行命令source /etc/environment
或注销并重新登录才能应用此设置。
1.3 下载
https://blog.csdn.net/opengl_es/article/details/80184519
解压后,出现 tools 目录,将其放入一个空的 SDK 待安装目录下,开始安装。
二、列出可安装组件包
使用快捷键 CTRL + ALT + T 打开 Console 控制端,进入上面解压出来的 tools 目录下的 bin 目录,找到 sdkmanager ,
执行如下命令
./sdkmanager --list ( ../android list sdk 已过时)
三、安装组件包
接下来,选择上面的 PATH 列内容进行安装,命令如下:
$ ./sdkmanager "system-images;android-27;google_apis;x86"
./sdkmanager "双引号中是上面的path"
./sdkmanager "build-tools;28.0.0"
./sdkmanager "ndk-bundle"
./sdkmanager "ndk;20.0.5594570"
./sdkmanager "platforms;android-28"
./sdkmanager "sources;android-28"
./sdkmanager "system-images;android-28;google_apis;x86_64"
2 编译opencv以及opencv_contrib
https://www.cnblogs.com/klchang/p/7563494.html
本文以编译opencv 3.3.0 和 opencv_contrib 3.3.0为例,系统为 Linux x64 (Fedora 21),具体步骤如下:
1. 下载 Source code zip 压缩包
从下面网址,选择 opencv 3.3.0 Source code 下载
https://github.com/opencv/opencv/releases
从下面网址,选择下载与 opencv 3.3.0 对应的 opencv_contrib 3.3.0
https://github.com/opencv/opencv_contrib/releases
注意:opencv和opencv_contrib 版本必须保持一致,否则可能会出现编译错误。
2. 下载 build-opencv-for-android 开源代码
$ cd /mnt/work
$ git clone https://github.com/tzutalin/build-opencv-for-android.git
$ cd build-opencv-for-android
3. 解压源码包并重命名
将opencv-3.3.0.zip 和 opencv_contrib-3.3.0.zip 都解压到下载的build-opencv-for-android 开源代码 所在目录 /mnt/work/build-opencv-for-android 。
$ unzip opencv-3.3.0.zip -d /mnt/work/build-opencv-for-android
$ unzip opencv_contrib-3.3.0.zip -d /mnt/work/build-opencv-for-android
$ cd /mnt/work/build-opencv-for-android
$ mv opencv-3.3.0 opencv
$ mv opencv_contrib-3.3.0 opencv_contrib
4. 修改 build-opencv-for-android 开源代码中 build-android-opencv.sh
修改内容如下:
修改 第 6 行代码:
declare -a ANDROID_ABI_LIST=("x86" "x86_64" "armeabi" "arm64-v8a" "armeabi-v7a" "mips" "mips64")
为
declare -a ANDROID_ABI_LIST=("armeabi-v7a")
3 错误
opencv_contrib/modules/xfeatures2d/src/boostdesc.cpp:653:20: fatal error: 'boostdesc_bgm.i' file not found
下载这些文件
xfeatures2d/boostdesc: Download failed: 7;"Couldn't connect to server"
下载 对应的文件
放到
build-opencv-for-android\opencv_contrib\modules\xfeatures2d\cmake
build-opencv-for-android\opencv_contrib\modules\xfeatures2d\src
5. 执行脚本 build-android-opencv.sh
$ ./build-android-opencv.sh /mnt/work/android/android-sdk-linux/ndk-bundle
注:build-android-opencv.sh脚本的通用的执行命令格式为“./build-android-opencv.sh [NDK_ROOT]”,其中,参数NDK_ROOT是可选的,表示Android Native Development Kit (NDK) 顶层目录,如果没有提供,则会试图寻找环境变量 ANDROID_NDK。
6 在Android中使用
在mk文件中加入
# OpenCV
OPENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on
OPENCV_LIB_TYPE:=STATIC
#include D:/project\Android\OpenCV-2.4.10-android-sdk\sdk\native\jni\OpenCV.mk
#include /software/OpenCV-android-sdk/sdk/native/jni/OpenCV.mk #without opencv_contrib
include /software/build-opencv-for-android/android_opencv/opencv/sdk/native/jni/OpenCV.mk #with opencv_contrib
7 问题2
terminate called after throwing an instance of 'cv::Exception'
what(): OpenCV(3.4.3-dev) /home/zhourui/Software/opencv_contrib/modules/xfeatures2d/src/sift.cpp:1205: error: (-213:The function/feature is not implemented) This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'create'
https://zhuanlan.zhihu.com/p/48854990
cmake -DOPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules -DOPENCV_ENABLE_NONFREE=ON
Ubuntu 上编译opencv_contrib模块for Android的更多相关文章
- 【转】Ubuntu 上编译Android出现cannot find -lstdc++解决办法
[转]Ubuntu 上编译Android出现cannot find -lstdc++解决办法 在Ubuntu 12.04 x86_64机器上编译Android出现下面错误,是因为找不到32bit的li ...
- 在ubuntu上编译chrome
在ubuntu上编译chrome 在ubuntu上编译chrome 红心地瓜 1.获取代码 1)下载tarball,http://chromium-browser-source.commondatas ...
- Android5.0 Gallery2上编译Gallery模块出错
Android5.0 Gallery2上编译Gallery模块出错 时间:2015-05-05 19:32:57 阅读:105 评论:0 收藏:0 [点我收藏+ ...
- (原)ubuntu上编译PANet/Detectron.pytorch时-std=c99的错误
转载请注明出处: https://www.cnblogs.com/darkknightzh/p/10494787.html 在ubuntu上编译PANet/Detectron.pytorch时,总提示 ...
- Qt+MPlayer音乐播放器开发笔记(一):ubuntu上编译MPlayer以及Demo演示
前言 在ubuntu上实现MPlayer播放器播放音乐. Demo Mplayer MPlayer是一款开源多媒体播放器,以GNU通用公共许可证发布.此款软件 ...
- .NET跨平台:在Linux Ubuntu上编译coreclr/corefx/dnx(20150617)
编译时间:北京2015年6月17日上午 操作系统:Ubuntu 14.04.2 LTS Mono版本:Mono JIT compiler version 4.3.0 (master/3445ac5 T ...
- Ubuntu+NDK编译openssl(为了Android上使用libcurl且支持HTTPS协议)
为了Android上使用libcurl且支持HTTPS协议,需要依赖openssl,因此先来了解一下如何编译OpenSSL1.编译ARM下的共享库(默认的)我使用的是guardianproject的o ...
- 在Linux Ubuntu上编译DNX
DNX是.NET Execution Environment,前身是XRE,XRE的前身是KRuntime,项目网址:https://github.com/aspnet/DNX . 签出DNX的代码: ...
- 在64位Ubuntu上编译32位程序常见错误
问 题1: 找不到头文件 asm/errno.h 解决办法 : [/usr/lib/gcc$ ]sudo ln -s x86_64-linux-gnu/asm asm 问题2:找不到gcc ...
随机推荐
- 《快活帮》第八次团队作业:Alpha冲刺
项目 内容 这个作业属于哪个课程 2016计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十二 团队作业8-软件测试与ALPHA冲刺 团队名称 快活帮 作业学习目标 (1)掌握 ...
- python 查询文件存放地址
import os, time import sys import re def search(path,name): for root, dirs, files in os.walk(path): ...
- 输入一个表示整数的字符串,把该字符串转换成整数并输出(实现atoi函数功能)
例如输入字符串"345",则输出整数345.-----------------------------此题一点也不简单.不信,你就先不看一下的代码,你自己先写一份,然后再对比一下, ...
- vue cli4.0 配置环境变量
温馨提示:本文只适用于vue-cli 3.0 及以上的版本哦~ ------------------正文开始------------------ 开发项目时,经常会需要在不同环境中切换.那么我们如何配 ...
- 强大的接口调试工具-Postman图文详解
前言 在前后端分离开发时,后端工作人员完成系统接口开发后,需要与前端人员对接,测试调试接口,验证接口的正确性可用性.而这要求前端开发进度和后端进度保持基本一致,任何一方的进度跟不上,都无法及时完成功能 ...
- EasyExcel引入
好久没更了,都在有道云上面记录,没时间搬过来. easyexcel是最近项目做优化涉及的一个改善点吧. 简介 导出是后台管理系统的常用功能,当数据量特别大的时候会内存溢出和卡顿页面,曾经自己封装过一个 ...
- go语言 函数return值的几种情况
分三种情况 (以下 “指定返回值”这句话, 仅指return后面直接跟着的返回值) 退出执行,不指定返回值 (1) 函数没有返回值 package main import ( "fmt&qu ...
- BZOJ 1818: [Cqoi2010]内部白点 扫描线+树状数组
问题转化为求每一个极长横线段与极长纵线段的交点个数. 这个东西用扫描线+树状数组维护一下就可以了. code: #include <cstdio> #include <algorit ...
- Pandas模块 --- 字符与日期型数据的处理
1,pd.to_datetime( 要转换的日期, format= ), 2,pd.to_datetime.today( ).year ,pd.to_datetime.now( ).year 3,字 ...
- haproxy 2.0 dataplaneapi 类似的工具haproxyadmin
haproxyadmin 是一个python 的pip 包,提供了类似dataplaneapi 的功能,使用上也比较简单,同时提供的方法也比较全 使用的技术与dataplaneapi 基本类似,也是一 ...