中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于android studio開發的 opencv關于android人臉識別的DEMO

發布時間:2020-07-17 12:29:18 來源:網絡 閱讀:24028 作者:Mr_haha 欄目:移動開發

(2018年11月23日 在 <a href="revise_181123">鏈接 </a> 補充了一個新的BUG)

一個新項目的導入 可能會遇到多個問題,就這些問題 做個 解決集合,以便日后回顧,

版本 : android studio3.1.4 ,opencv-3.4.1-android-sdk

首先 我們要給 IDE 安裝 ndk 的環境:

        打開 AS的 Settings:      File->Settings

基于android studio開發的 opencv關于android人臉識別的DEMO


(PS: 好像是這些。。。。具體的忘記了。。。  ̄□ ̄||)


Apply 后 就等著 下載安裝吧~~~~~


環境弄好后 我們開始 看具體的 實施步驟:


一、下載OpenCV android 的SDK ,

       (2018年9月10日最新版) https://sourceforge.net/projects/opencvlibrary/files/opencv-android/3.4.1/opencv-3.4.1-android-sdk.zip/download

二、導入項目

    基于android studio開發的 opencv關于android人臉識別的DEMO

    基于android studio開發的 opencv關于android人臉識別的DEMO

    基于android studio開發的 opencv關于android人臉識別的DEMO


    8、next完后直接 finish就好了。

           不過 項目導入后 還沒完,接下來


    基于android studio開發的 opencv關于android人臉識別的DEMO


    基于android studio開發的 opencv關于android人臉識別的DEMO

    

    基于android studio開發的 opencv關于android人臉識別的DEMO


基于android studio開發的 opencv關于android人臉識別的DEMO


include ':openCVLibrary341'



然而這時候 還沒有結束: 

    我在編譯后報出了 一個問題:

    基于android studio開發的 opencv關于android人臉識別的DEMO


這是因為 OpenCV 的 compileSdkVersion 太低了

基于android studio開發的 opencv關于android人臉識別的DEMO


我這里是 改成了和 27 就編譯通過了


到這里 導入工作 也就進行了一半了:

    接下來 還要導入 .so文件,.mk文件

這些文件分別在:

    1、.so文件:

            基于android studio開發的 opencv關于android人臉識別的DEMO


    2、.mk文件在


基于android studio開發的 opencv關于android人臉識別的DEMO


然后接下來 在 android studio 的 src/main目錄下 分別 新建 jni 和 jniLibs兩個目錄,如圖

    基于android studio開發的 opencv關于android人臉識別的DEMO


然后將 之前 的    ....\OpenCV-android-sdk\samples\face-detection\jni  目錄下的所有文件復制到項目的jni目錄下


然后將       .....\OpenCV-android-sdk\sdk\native\libs 目錄下的所有內容復制到 jniLibs目錄下

        如圖:

基于android studio開發的 opencv關于android人臉識別的DEMO


這時候 還要配置下 jni 的目錄,配置方式如圖:

    基于android studio開發的 opencv關于android人臉識別的DEMO

    

externalNativeBuild{
    ndkBuild{
        path }
}



ok 我們編譯下看看~~~


結果 Duang的一下 搞了一個錯誤~~~

基于android studio開發的 opencv關于android人臉識別的DEMO


其實 這個東西 就是在我們剛剛 復制過來的 Android.mk中

基于android studio開發的 opencv關于android人臉識別的DEMO


只要將這個 按照我們自己的實際路徑改一下 就ok了


基于android studio開發的 opencv關于android人臉識別的DEMO


這樣再次編譯 ok 通過了~ 贊一個先


不過這里先說一下 配置還是有問題的, 但是我們先使用OpenCV 中的 simple 看看吧 

    simple 路徑:OpenCV-android-sdk\samples\face-detection

    因為這是個 Eclipse的項目, 我就簡單的將 Samples 中的相關代碼 復制到 項目中了。主要有這幾樣東西:


    1、OpenCV-android-sdk\samples\face-detection\res\raw 這個目錄中是 人臉用到的文件所以是必須的


    2、OpenCV-android-sdk\samples\face-detection\src\org\opencv\samples\facedetect     目錄中是 activity文件 和一個工具的java文件


    3、需要用到的權限(在這里我沒遇到什么問題,所以就不多說了)

        

    <uses-permission android:name="android.permission.CAMERA"/>

    <uses-feature android:name="android.hardware.camera" android:required="false"/>

    <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>

    <uses-feature android:name="android.hardware.camera.front" android:required="false"/>

    <uses-feature android:name="android.hardware.camera.front.autofocus" android:required="false"/>


    4、

基于android studio開發的 opencv關于android人臉識別的DEMO


5、最后 還有FdActivity 的 layout 別忘了


ok 這個時候 可以運行 看看了,不過我可以提前說明,現在運行會崩潰的~~~

不過沒關系 我們看一下bug~~~

09-10 11:17:15.555 21819-21819/com.example.china_yzh.demoopencv E/zygote64: No implementation found for long com.example.china_yzh.demoopencv.DetectionBasedTracker.nativeCreateObject(java.lang.String, int) (tried Java_com_example_china_1yzh_demoopencv_DetectionBasedTracker_nativeCreateObject and Java_com_example_china_1yzh_demoopencv_DetectionBasedTracker_nativeCreateObject__Ljava_lang_String_2I)

09-10 11:17:15.555 21819-21819/com.example.china_yzh.demoopencv D/AndroidRuntime: Shutting down VM

09-10 11:17:15.557 21819-21819/com.example.china_yzh.demoopencv E/AndroidRuntime: FATAL EXCEPTION: main

    Process: com.example.china_yzh.demoopencv, PID: 21819

    java.lang.UnsatisfiedLinkError: No implementation found for long com.example.china_yzh.demoopencv.DetectionBasedTracker.nativeCreateObject(java.lang.String, int) (tried Java_com_example_china_1yzh_demoopencv_DetectionBasedTracker_nativeCreateObject and Java_com_example_china_1yzh_demoopencv_DetectionBasedTracker_nativeCreateObject__Ljava_lang_String_2I)

        at com.example.china_yzh.demoopencv.DetectionBasedTracker.nativeCreateObject(Native Method)

        at com.example.china_yzh.demoopencv.DetectionBasedTracker.<init>(DetectionBasedTracker.java:9)

        at com.example.china_yzh.demoopencv.FdActivity$1.onManagerConnected(FdActivity.java:91)

        at com.example.china_yzh.demoopencv.FdActivity.onResume(FdActivity.java:149)

        at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1361)

        at android.app.Activity.performResume(Activity.java:7361)

        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3765)

基于android studio開發的 opencv關于android人臉識別的DEMO


出錯的原因 就是我上面紅色 標出的內容:

No implementation found for long com.example.china_yzh.demoopencv.DetectionBasedTracker.nativeCreateObject


這個問題 我是找了好久 才 弄明白的。。。。

其實 這個就是我之前 導包是 留下的那個問題 ,  之前在 jni目錄下 導入了 四個文件 分別是


基于android studio開發的 opencv關于android人臉識別的DEMO


之前 OpenCV.mk找不到 是因為 Android.mk 


這次的錯誤 是后面兩個 文件 , 一個 .ccp文件 和一個 .h文件。


我們來看看文件的內容:


基于android studio開發的 opencv關于android人臉識別的DEMO


看到這個是不是覺得眼熟 ,沒錯 我們之前的 bug中 有類似的 文本說明:

基于android studio開發的 opencv關于android人臉識別的DEMO


很簡單 將 上面說的 .h和.cpp中的 所有 都改成這個目錄就好了,(ps:這里的內容是因項目路徑而異的,根據實際情況來)


基于android studio開發的 opencv關于android人臉識別的DEMO


不用擔心 Replace吧~


基于android studio開發的 opencv關于android人臉識別的DEMO


改完后 我們再來運行看看 

perfect ~~~




<a name="revise_181123">修改日期:2018年11月23日</a>

修改原因:遇見新的BUG

BUG: Android NDK: APP_STL gnustl_static is no longer supported.  

        AS 不再支持 gnustl_static 要換成 c++_static 或作者 c++_shared(是不是這么寫的忘記了。。。不過報錯的時候會有顯示的)

修改位置:

基于android studio開發的 opencv關于android人臉識別的DEMO









來看看 運行效果


基于android studio開發的 opencv關于android人臉識別的DEMO


額 可能邊上兩個太黑了 -_-||~~~ 我不是有意的 。。。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永和县| 陇南市| 凭祥市| 丹凤县| 大兴区| 沙洋县| 万荣县| 汕尾市| 科技| 南江县| 正阳县| 林周县| 凤台县| 九寨沟县| 茂名市| 雷山县| 修文县| 哈密市| 唐山市| 大连市| 瑞安市| 无为县| 余姚市| 桐乡市| 彩票| 石家庄市| 常熟市| 通河县| 民和| 永定县| 嘉荫县| 泽库县| 新蔡县| 丰台区| 潼南县| 沅陵县| 湘西| 井冈山市| 苗栗市| 湖口县| 霍邱县|