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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android搭建opencv开发环境,Android Studio搭建opencv开发环境

發布時間:2025/3/8 Android 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android搭建opencv开发环境,Android Studio搭建opencv开发环境 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章不配圖片,閱讀需要有Android開發基礎并熟悉Android Studio。

一、搭建基于Java開發環境

以下內容介紹如何搭建基于Java jni的opencv開發環境。

1、準備工作

從opencv官網下載Android平臺開發sdk并解壓,假設解壓后文件夾名為opencv-4.3.0-android-sdk。(此處以4.3.0為例)

2、創建項目

使用Android Studio(下簡稱AS)創建項目,假設項目名叫 cvdemo。

3、創建Module

創建新的Module作為opencv sdk,假設其名為opencv4。

之所以選擇創建新Module而不是導入,只是因為opencv提供的目錄結構像是ADT,gradle將會有大量配置目錄的信息。

4、導入代碼

將java代碼和res資源放進Module的對應目錄;

將存放本地動態文件*.so的 /opencv-4.3.0-android-sdk/sdk/native/libs/ 目錄拷貝到opencv4的根目錄下,即:/cvdemo/opencv4/libs/。

打開opencv4的build.gradle,在android內添加sourceSets,如下:

android {

...//其他配置信息

sourceSets {

main {

jniLibs.srcDirs = ['libs']//此目錄即為上述添加的目錄

}

}

...//其他配置信息

}

刷新項目,項目下會出現名為jniLibs的虛擬目錄,并能查看到對應平臺下的本地動態文件*.so。

此時已經可以依賴此Module實現Java開發。

二、搭建基于C/C++開發環境

雖然opencv提供面向Android的SDK,但是實際測試效果并不理想,特別在遍歷Mat的時候,那效率簡直感人。所以采用本地開發也是不錯的選擇。

繼續配置以下內容實現本地開發,以下內容假設項目是在 app Module內做本地開發。

5.配置jni開發

打開項目的local.properties文件,AS默認沒有配置ndk目錄,確保ndk目錄配置正確:

// 把sdk.dir和ndk.dir路徑修改成你自己的目錄

sdk.dir=/Applications/Android_SDK_Manager

ndk.dir=/Applications/Android_SDK_Manager/ndk/21.1.6352462

6.復制頭文件

找到頭文件*.h和*.hpp所在的目錄/opencv-4.3.0-android-sdk/sdk/native/jni/include/,將其下的所有內容(在4.3.0版本,其下只有一個opencv2目錄)拷貝到/opencv4/src/main/cpp/下。

因為頭文件不是開發源代碼,所以不需要添加到build.gradle里。

只要讓CMakeLists.txt能導入即可。

7. 創建CMakeLists.txt

創建目錄/cvdemo/app/src/main/cpp/,做為本地開發代碼的目錄。

假設本地項目只有my_native.cpp一個文件,并將編譯成名為libmy_native.so的動態文件。

在cpp目錄下創建文件CMakeLists.txt,內容如下:

#CMakeLists.txt

#定義變量,名為opencv,值為opencv sdk(opencv4 Module)目錄,

#為了項目導入導出后不用修改,此處采用相對路徑定位。

#CMAKE_SOURCE_DIR變量為CMakeLists.txt所在目錄。

set(opencv ${CMAKE_SOURCE_DIR}/../../../../opencv4)

cmake_minimum_required(VERSION 3.4.1)

#配置加載native依賴

#引入opencv頭文件所在目錄

include_directories(${opencv}/src/main/cpp)

#引入opencv庫

add_library(

opencv_java4

SHARED

IMPORTED)

#引入動態文件

set_target_properties(

opencv_java4

PROPERTIES IMPORTED_LOCATION

${opencv}/libs/${ANDROID_ABI}/libopencv_java4.so)

#以下為開發的本地庫的配置,此處不做詳解

add_library(

my_native

SHARED

my_native.cpp)

find_library(

log-lib

log)

target_link_libraries(

my_native

#此處也要添加

opencv_java4

${log-lib})

8. 修改build.gradle

接著修改本地源碼所在的Module(此處假定的是app)的build.gradle,內容如下:

android {

...//其他配置信息

defaultConfig {

...//其他配置信息

externalNativeBuild {

cmake {

cppFlags "-frtti -fexceptions"

arguments "-DANDROID_STL=c++_shared"//導入C++標準庫

}

}

ndk {//需要編譯的平臺

abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86', 'x86_64'

}

}

externalNativeBuild {

cmake {

path "src/main/cpp/CMakeLists.txt"//cmake所在位置

version "3.10.2"

}

}

...//其他配置

}

...//其他配置

dependencies {

implementation fileTree(dir: 'libs', include: ['*.jar'])

//最后別忘了引用opencv sdk Module

implementation project(path: ':opencv4')

...//其他引用內容

}

9、其他

my_native.cpp提供的jni接口函數,本文不做贅述,可以查看其他相關文檔。

因為各種配置相關路徑在build.gradle和CMakeList.txt里都可以修改,所以可以根據自己情況做修改。

總結

以上是生活随笔為你收集整理的android搭建opencv开发环境,Android Studio搭建opencv开发环境的全部內容,希望文章能夠幫你解決所遇到的問題。

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