Android中OpenCv编译的时候一些错误的总结

OpenCV在Android上踩过的坑 最近一个新项目需要用的到人脸检测,想着之前见过opencv,就在网上找了配置教程,结果一直无法成功,鉴于网上的基本都是330版本,想着可能比较老,去官网下载了最新版(那个下载速度啊,真的是…)建议可以去github上面下载,我下的是3.4.0(为什么不是最新版呢?因为我下过了,不行,后面看到有人说不要下载最新版 ^ 笑哭^) 好了, 配置看上面的有人的文章就好了 万一有人的文章不进了呢,那我还是复制一下吧 导入modul 就常规的import module啊 选择下载的文件里面sdk 文件夹下面的 ja 阅读详情

  最近因为一个项目需要在Android中用到OpenCv,搞了几天才编译成功,遇到了一些问题,先记下来以后可以查看。

1.无法解析#include <jni.h>

这个错误是因为NDK的include路径没有加入,project->properties->c/c++ General->path and symbols->include栏目下把E:\ndk\platforms\android-14\arch-arm\usr\include加入,我随便挑的一个platform。

2.无法找到core.hpp,这个都怪我,我学vc配置环境那样,把include,include/opencv,include/opencv2都加入进来了,死活找不到core/core.hpp。去掉include/opencv和include/opencv2后,用opencv2/core/core.hpp就找到了,我承认我很水。

3.NDK对于RTTI,标准库和exception的支持。

编译的时候提示找不到<algorithm.h>,-fno-rtti这些错误,这个的解决办法是在Application.mk中加入下面几句:

APP_STL := gnustl_static(标准库的支持),APP_GNUSTL_FORCE_CPP_FEATURES :=exceptions rtti(对exception和rtti的支持).关于Application的使用,可以参考这篇文章:http://blog.youkuaiyun.com/flydream0/article/details/7433786

4.编译没问题,程序启动就会挂掉,提示libopencv_java.so not found,在Android.mk的include $(CLEAR_VARS)后面加入OPENCV_LIB_TYPE:=STATIC,不过我对Linux的共享库不是太了解,我想动态的加载libopencv_java.so。

主要就是上面的一些问题,我没有用opencv官方给的那些调用方式,第一次写这种类型的博客,欢迎讨论。

Qt for Android 之 OpenCV编译(Windows下编译) 编译Opecv Android平台库, 并在 Qt for android项目中调用 阅读详情

相关推荐

基于opencv的数字识别

通过opencv对图片上的数字进行识别。识别方式和步骤主要是寻找出数字的外轮廓,然后根据轮廓外接矩阵对数字进行分割,然后根据模板,求出其与分割好的数字的像素差值,找出最匹配的数字。

研究了一波RTTI,再介绍软件开发的201个原则

最近研究了一波RTTI,整理了一下知识点,在这里分享一下,下面是目录: RTTI 是 Run Time Type Information 的缩写,从字面上来理解就是运行时期的类型信息,它的主要作用就是动态判断运行时期的类型。 一般在dynamic_cast和typeid中用到,例如父类B的指针转换子类A的指针,dynamic_cast会判断B究竟是不是A的父类,如果不是,会返回nullptr,相对于强转会更加安全。依据什么判断的呢?就是RTTI。 先看下面这段代

qq_29426201的博客 816

告别第三方插件:官方Fused Library如何重塑Android库的合并与发布流程

本文详细介绍了Android官方推出的Fused Library如何替代第三方fat-aar插件,优化Android库的合并与发布流程。通过原生支持、智能依赖管理等优势,Fused Library解决了版本兼容性、依赖传递等核心痛点,提供了更稳定高效的开发体验。文章还提供了迁移实操指南和工程实践建议,帮助开发者顺利过渡到官方方案。

weixin_42561040的博客 254

libwebrtc与openCV库的冲突:-fno-rtti与-frtti

rtti:RTTI(Run-Time Type Identification),通过运行时类型识别能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型(引用百度解释)。 在项目中有用到webrtc的库和OpenCV库,两个开源项目的库均为自己编译。在导入到项目中编译时,如果在CMakeLists.txt中配置了-fno-rtti时,OpenCV库无法正常链接。如果换成-frtti参...

TopsLuo的专栏 4451

HFSS 3D Layout一键导入PCB,高效搞定微带线损耗仿真

在高速PCB设计中,信号完整性与电磁仿真是确保链路质量的关键环节。传统的HFSS手动建模流程繁琐且极易出错,尤其面对微带线、带状线等高频结构时,叠层参数、铜箔粗糙度等细节难以精准还原,导致仿真结果与实测偏差较大。HFSS 3D Layout模块提供了从EDA工具直接导入PCB文件的能力,完整保留走线、过孔、叠层及材料属性,结合精确的介质损耗模型与端口设置,大幅缩短建模时间并提升仿真精度。该技术广泛应用于DDR、SerDes等高速数字链路的设计验证,以及SI/PI工程师对PCB损耗性能的快速评估。本文从导入操

weixin_29191081的博客 255

HFSS螺旋线圈的优化设计与高效仿真实践

本文详细介绍了HFSS螺旋线圈的优化设计与高效仿真实践,涵盖核心参数设置、参数化建模、仿真加速技巧及结果分析。通过HFSS软件实现螺旋线圈的高效仿真,特别适用于无线充电和RFID系统设计,提升设计效率与性能验证准确性。

weixin_30235225的博客 445

针对opencv导入Android studio不成功的解决办法?

解决opencv导入Android studio不成功,没有下一步的问题。

weixin_58308529的博客 6823

基于STM32与FPGA Cyclone IV的FSMC高速数据通信实战解析

本文详细解析了基于STM32的FSMC接口与FPGA Cyclone IV实现高速并行数据通信的实战方案。通过将FPGA模拟为SRAM设备,构建了MCU与FPGA之间的高速数据通道,并深入探讨了硬件连接、STM32软件配置、FPGA逻辑设计及性能优化等关键步骤,为图像处理、高速采集等需要大数据量交换的嵌入式应用提供了稳定高效的通信解决方案。

swift5iosmith的博客 294

opencv在linux下编译失败,【失败的经验】在linux下编译opencv for android

cd /home/ahfu#选择opencv 3.4.6版本来编译wget https://github.com/opencv/opencv/archive/3.4.6.tar.gztar -zxvf opencv-3.4.6.tar.gzwget https://codeload.github.com/opencv/opencv_contrib/tar.gz/3.4.6tar -zxvf ope...

weixin_39610366的博客 342

CloudCompare实战:5分钟搞定点云数据预处理(含常见格式转换技巧)

本文提供了一套基于CloudCompare的5分钟点云数据预处理实战指南。文章详细讲解了如何利用这款开源工具,快速完成点云数据的格式转换(如LAS转PLY)、统计离群值降噪、体素网格下采样以及交互式裁剪等核心操作,帮助用户高效清理和规整杂乱数据,为后续分析建模奠定基础。

weixin_29207533的博客 477

109. SAP ABAP 应用程序中的锁机制和工作原理介绍

SAP ABAP 系统中的锁概念,是 SAP ABAP 为了保证`数据一致性`而引入的一种保护机制。 像 SAP 这种复杂的企业级应用,系统中同一时间段的同一份数据,可能会有多个 Transaction(终端用户或者 API )同时进行读写操作。为了防止出现数据不一致,SAP ABAP 引入了锁机制。 这种锁机制并非数据库服务器层面的锁,而是在 SAP ABAP 应用服务器层面上工作,加锁和解锁都由专门的 ABAP Function Module 来完成。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1468

android源代码 sdk 交叉编译 windows,Windows编译OpenCV4Android解决undefined reference to std错误(示例代码)...

OpenCV4Android支持三种使用方式1.Java层调用2.NDK调用动态库(方便,但是会包含整个.so库)3.NDK调用静态库(灵活,比如没有用到机器学习模块,libopencv_ml.a里的代码是不会打包到动态库里的)通过链接静态库的方式使用OpenCV4Android,CMAKE配置如下#############################prepare for using of ...

weixin_39630637的博客 586

【AI Guide】AI面试攻略只用看这一篇就够了!力争做全网最全的AI面试攻略——大模型(五)Adapter 微调

Adapter 微调(Adapter Fine-tuning)是一种高效的参数高效微调(PEFT)方法。相较于全参数微调(Full Fine-tuning),Adapter 在预训练模型的特定层插入轻量级的可训练模块,而冻结原始模型参数,从而减少计算和存储开销。是缩放因子,控制 Adapter 输出的影响程度。设 Transformer 层的隐藏状态为。为 Adapter 层的可训练参数,为非线性激活函数,如 ReLU。为冻结的预训练模型参数,

AI科研社 184

android opencv3.0 jni 编译错误 undefined reference to `cvCvtColor'

在 android studio 上基于opencv3.0 编译jni 出现一大堆如下错误: Error:(84)undefined reference to `_IplImage::_IplImage(cv::Mat const&)' Error:(87)undefined reference to `cvCreateImage' Error:(88)undefined ref

shuwu 9074

uniapp - 使用 <video> 播放视频黑屏,浏览器控制台报错: DOMException: The element has on supported sources.(详细完美解决方案)

uniapp video 视频播放黑屏,uniapp 报错DOMException: The element has on supported sources.,uniapp如何解决DOMException: The element has on supported sources.,uniapp使用video标签无法播放视频出现黑屏问题处理,uniapp解决video视频黑屏显示0秒,并且浏览器报错DOMException: The element has on supported sources.,un

✅ 精选推荐文章 7055

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

2022-12-02 编译Android平台OpenCV,用到读取视频时报错:AMediaXXX

编译安卓平台OpenCV,报错AMediaXXX

悉尼没有雪 1515

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Windows编译OpenCV4Android解决undefined reference to std错误

注意OpenCV 4.0.1 解决了这个问题请直接下载OpenCV 4.0.1 但是OpenCV 4.0.1作为模块导入Android Studio会有找不到R.styleable的问题 OpenCV 4.0.1 找不到R.styleable解决 OpenCV4Android支持三种使用方式 1.Java层调用2.NDK调用动态库(方便,但是会包含...

weixin_33937499的博客 812

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

opencv4android3.0,android-Opencv 3.0.0 OpenCVEngineInterface

我正在尝试在Android Studio IDE中安装opencv 3.0.0.但是每次导入“ org.opencv.engine.OpenCVEngineInterface”遇到此问题时,IDE都会给我4个错误,例如:Error:(7, 25) error: package org.opencv.engine does not existError:(47, 15) error: cannot ...

weixin_33588445的博客 1819

ncnn android编译

直接使用下面的和官方的opencv 出现了typeid无法识别的问题。如果直接使用的opencv但是看了有些函数被去掉了,我一个项目刚好需要estimateAffinePartial2D函数,但是恰好他没有,那么只能选择官方的opencv(但是又碰上了 error: use of typeid requires -frtti主要是用到了typeid 引起的,android为了效率关闭了运行时类型信息 (RTTI),开启会增加程序大小和降低性能。

1055

opencv交叉编译android库

准备 下载android-sdk android-sdk 解压 tools 执行 ./android update sdk 选择一个build-tools安装 android-ndk https://developer.android.google.cn/ndk/downloads 编译 cmake … -DCMAKE_TOOLCHAIN_FILE=…/platforms/android/and...

Simplify_boy的博客 1278

caffe2编译android库,使用CMake交叉编译Android环境的OpenCV

编译环境这一点十分重要,有时候如果环境不同,可能出现一些奇奇怪怪的错误,会浪费大量的时间去填坑。比如我用>Android NDK r18b版本编译,就报错:针对这个报错,我提了一个issues:https://github.com/opencv/opencv/issues/15521不知道以后会不会解决。解决了:如果使用>Android NDK r18b编译,需要添加下面的参数:-DB...

weixin_42515906的博客 937

安卓引入opencv问题

安卓引入opencv问题

weixin_56924782的博客 712

OpenCV编译报recipe for target ‘all‘ failed

编译流程: 参考:https://juejin.cn/post/6844903793650302989 1.构建独立的交叉编译环境(不知道有啥用,也没有去实验缺少这一步有什么问题) ../android-ndk-r16b/build/tools/make-standalone-toolchain.sh\ --toolchain=arm-linux-androideabi-4.9\ #编译工具名字 --platform=android-21\ android api的级别 --install-dir=

AC1992的专栏 4871

[小坑点]最新OpenCV4.01Android版与OpenCV3系列Android版使用上略有不同

由来: 下载OpenCV4.01Android版 按照国际惯例通过Import Module导入OpenCV 主app再引入该Module的Dependency 点击锤子

luanqibazaoming的博客 556

error: undefined reference to ‘cv::Mat::~Mat()‘解决AndroidStudio集成OpenVC出现的编译报错问题

本来这种类型的博客不是笔者想写的,不过这个问题,笔者经过网上一番搜索却没有可用的解决方案,因此分享出来帮助大家填坑。

农贤钢的专栏 1万+

编译android opencv,帮忙看看编译android平台的opencv 总是报错

SDK initialized in 0 msChecking the license for package CMake 3.6.4111459 in /home/tianshaokai/Android/Sdk/licensesWarning: License for package CMake 3.6.4111459 not accepted.FAILURE: Build failed wit...

weixin_34812649的博客 647
下一篇: 色彩空间Lab和RGB互转的Matlab代码
Virgilio
博客等级 码龄17年 33粉丝 22原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值