日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

安卓JNI使用OpenCV

發(fā)布時間:2023/12/31 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 安卓JNI使用OpenCV 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

???????? OpenCV也有Java數(shù)據(jù)結構的包,不過計算速度還是很慢,非不得已不使用此種方式調用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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。