OpenCV也有Java数据结构的包,不过计算速度还是很慢,非不得已不使用此种方式调用OpenCV。使用NDK编写底层OpenCv的调用代码,使用JNI对代码进行封装,可以稍微提高一点效率。

参考链接:http://www.tuicool.com/articles/yaeeuu

安卓使用OpenCV注意事项:

注意事项: 包含OpenCV的工程最好放置在 OpenCV-2.4.10-android-sdk\samples 目录下,省却很多 莫名其妙配置的麻烦。

一、 添加头文件包含:

对自己建立的SO包里面的JNI源文件,添加即将使用到的头文件包含:

#include <jni.h>#include <string.h>
#include <stdio.h>
#include <android/log.h><u>#include "rec3D.h"</u>#ifndef _Included_org_opencv_samples_fd_DetectionBasedTracker
#define _Included_org_opencv_samples_fd_DetectionBasedTracker
#ifdef __cplusplus
extern "C" {
#endif//JNIEnv* jniEnv;
extern "C" jstring Java_com_example_feeljulygpsmap_FeelJulyActivity_careJuly(JNIEnv *env, jobject thiz) ;
extern "C" jint Java_com_example_feeljulygpsmap_FeelJulyActivity_careJulyIn(JNIEnv *env, jobject thiz,jint showCode) ;
extern "C" jintArray Java_com_example_feeljulygpsmap_FeelJulyActivity_careJulyArray(JNIEnv *env, jobject thiz,jintArray InCode) ;#ifdef __cplusplus
}
#endif
#endif

使用到OpenCV的源文件:

#pragma once#ifndef _REC3D_H
#define _REC3D_H<u>#include <opencv2/core/core.hpp>
#include <opencv2/video/video.hpp>
#include <opencv2/calib3d/calib3d.hpp></u>#include <iostream>
#include <vector>#include <stdlib.h>using namespace  cv;
using namespace std;class MyCamera{public:cv::Mat intrinsic_Mat;cv::Mat disCoeff;

二、在工程中添加OpenCV的目录包含和库引用

文件:Android.mk

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)
LOCAL_C_INCLUDES := C:\QT\OpenCV-3.0-android-sdk\sdk\native\jni\includeOPENCV_LIB_TYPE   := staticifeq ("$(wildcard $(OPENCV_MK_PATH))","")
#try to load OpenCV.mk from default install location
include C:\QT\OpenCV-3.0-android-sdk\sdk\native\jni\OpenCV.mk
else
include $(OPENCV_MK_PATH)
endif  #include $(CLEAR_VARS)LOCAL_MODULE    := feelJulyGpsMap
LOCAL_SRC_FILES := feelJulyGpsMap.cpp \rec3D.cpp#LOCAL_LDLIBS    := -landroidLOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog
include $(BUILD_SHARED_LIBRARY)

在此注意事项:

LOCAL_C_INCLUDES := C:\QT\OpenCV-3.0-android-sdk\sdk\native\jni\include

为OpenCV的C++ 头文件包含目录

include C:\QT\OpenCV-3.0-android-sdk\sdk\native\jni\OpenCV.mk 

为OpenCV的库文件包含目录

三、使用OpenCV编译程序

snip..............................................

四、使用Android Native模式调试C++代码部分

snip.............................

备注:cv::solvePnP使用OpenCv解决多点透视问题!

安卓JNI使用OpenCV相关推荐

  1. 安卓JNI使用C++类

    安卓JNI使用C++类,同时可使用C++的类成员变量,这就必须保证程序持续保存Native状态,即长期维护C++对象的地址.完成初始化之后,需要使用对象成员的java层函数需要传入对象的地址. 一.N ...

  2. 安卓JNI开发-01

    安卓JNI开发 java中调用C,并传入相应数据进行模拟处理后再返回到java中 package com.example.jnitest;import java.util.Arrays;import ...

  3. Android Studio 下安卓 jni 开发错误 undefined reference to AndroidBitmap_getInfo

    博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 又掉坑里了 今天开发 uvc,又遇到了坑: 和之前的这个坑类似:Android Studio 下安卓 jni 开发错误 ...

  4. android studio 使用 jni 编译 opencv 完整实例 之 图像边缘检测!从此在andrid中自由使用 图像匹配、识别、检测...

    http://www.cnblogs.com/linguanh/p/4624768.html?utm_source=tuicool&utm_medium=referral http://blo ...

  5. android studio 使用 jni 编译 opencv 完整实例 之 图像边缘检测!

    目录: 1,过程感慨: 2,运行环境: 3,准备工作: 4,编译 .so 5,遇到的关键问题及其解决方法 6,实现效果截图. ------------------------------------- ...

  6. Android NDK开发——Android studio使用JNI调用OpenCV处理图像

    前言 这里要演示的是使用Android studio 做APP开发,使用JNI与C++交互的demo. 一.创建工程 1.创建一个Native C++工程. 2.命令工程和指定交互语言. 3.指定C+ ...

  7. 安卓 jni 开发之 native 方法的动态注册

    博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 最近一直在搞 jni 开发,里面坑挺多,其实都是自己不注意导致的.如果你不知道 jni,但是你又想了解这个坑,请先到隔壁 ...

  8. 安卓 jni 开发错误 UnsatisfiedLinkError: Native method not found

    博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 jni 开发的坑挺多的,今天遇到好多个,现在这个是这样的: UnsatisfiedLinkError: Native m ...

  9. 安卓 jni 开发错误 undefined reference to __android_log_print

    博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 jni 最近要搞安卓下串口的读写,需要用到 jni,然后遇到了这个问题,坑挺多. 串口读写参考文章:Android串口操 ...

最新文章

  1. 底层技术决定人工智能“跑速” | 科技心语
  2. h5仿微信聊天(高仿版)、微信聊天表情|对话框|编辑器
  3. Linux 虚拟化网络技术 — 虚拟网络协议栈
  4. 网站优化有三个重点不能忽视
  5. 时间序列预测——深度好文,ARIMA是最难用的(数据预处理过程不适合工业应用),线性回归模型简单适用,预测趋势很不错,xgboost的话,不太适合趋势预测,如果数据平稳也可以使用。...
  6. jquery ajax 上传文件 demo,Jquery+AJAX上传文件,无刷新上传并重命名文件
  7. WinForms C# :TabWebBrowser 多页面浏览器源码
  8. java sax解析复杂xml_SAX解析复杂的xml字符串
  9. 力扣每日一题 2021.10.23
  10. 炒股50问——走向职业操盘的简单问答!
  11. 电脑计算机程序员考证
  12. SqlServer 2008还原数据库步骤
  13. MSSQL 和 MYSQL 复制表结构和数据(B复制A)
  14. 2017河南工业大学玲珑杯赛后总结
  15. Rimworld Mod教程 第一章:这可能是你见过的最细的MOD教程了
  16. 【财务架构day1】财务系统的领域建模——五视图法的分析
  17. dsp广告和信息流广告区别_信息流广告和dsp的区别在哪?
  18. HDU 2448 Mining Station on the Sea(Floyd+最优匹配)
  19. 根据dem提取坡度的相关问题
  20. 黑发不知勤学早,白首方悔读书迟。

热门文章

  1. jmeter之关联操作
  2. 【Linux学习】Linux的文件权限(一)
  3. LVS DR模式搭建、keepalived+LVS
  4. socket通信数据类型
  5. postgreSQL入门01-安装
  6. js 控制 获取 dropdownlist的值
  7. Centos 6.9 iptables 开启端口 5050,5151 等
  8. 1.3 安装Oracle遇到的问题-yum更新配置
  9. 交换机配置——VTP管理交换机的VLAN配置
  10. POJ3013 Big Christmas Tree(最短路径树)