android下OpenCV實現(xiàn)人臉檢測既然如此簡單

這兩天在踩OpenCV的坑戒洼,需求:在不安裝OpenCV Manager apk的情況下跑通opencv下的人臉檢測demo。寫下此文記錄下丸卷;

注:本文采用opencv下的原始人臉檢測的demo进每,所以里面的c代碼都是原始包名的弟翘,如果你想修改包名則需要自己會jni的知識;如果不太會請看:像小白一樣學習android jni編程 莽红;后面我自己會修改包名重新生成新的so妥畏,如果這部分大家有問題的話,歡迎留言安吁;

openCV—SDK源碼


openCV—SDK下載地址
現(xiàn)在最高版本3.2醉蚁,現(xiàn)在網(wǎng)上部分資料都是采用2.4的sdk,本人親測3.2的版本要比2.4的版本流暢的不要太多鬼店。

下載下來的目錄結(jié)構(gòu)


opencv_sdk目錄結(jié)構(gòu)
  • apk:OpenCV Manager apk的存放目錄(根據(jù)不同cpu型號有不同的apk請根據(jù)自己的機器cpu型號來對應网棍,一般v7a的就好了)。
  • samples:opencv代碼案例里面包括了人臉檢測和其他薪韩。
  • sdk:包括了sdk和lib包确沸。
人臉檢測案例

用AS直接導入人臉檢測demo


注:

1:demo是eclipse的,導入的時候可能會有問題俘陷,但是應該是很容易解決的罗捎;

2:一定要導入import moudule opencv java庫。

導入的最后結(jié)果如下圖所示:


完整項目結(jié)構(gòu)

在此過程中可能會出現(xiàn)ndk的配置問題:

  • ndk的配置拉盾。

1:在gradle.properties中添加

android.useDeprecatedNdk=true

2:在local.properties中添加ndk路徑(是你的ndk安裝路徑)

ndk.dir=D\:\\android\\ndk\\android-ndk32-r10-windows-x86_64\\android-ndk-r10

如果不知道如何配置ndk請自行百度桨菜;

3:在app的build.pradle中添加

sourceSets.main {
    jni.srcDirs = ['libs']
}

至此所有的準備工作都已OK了,下面開始實干了捉偏。

實干步驟


  • 修改jni下的Android.mk
    需要修改的Android.mk

1:注意前面的“#”號倒得,那特么是注釋的意思,請干掉夭禽。

2:注意這里有2個if else的判斷(我直接去掉判斷了)霞掺,里面include的是opencvsdk中的OpenCV.mk文件,這個修改成你自己的opencv—sdk路徑讹躯;如果mk路徑錯誤在jni編譯的時候會報錯的菩彬;仔細看下錯誤會說明是OpenCV.mk路徑找不到缠劝。

修改之后成


修改后的Android.mk
  • 導入opencv下的libs

這個時候我們需要將opencvSDK下的libs導入到我們項目中去,這樣我們的項目就不需要安裝OpenCV Manager apk了骗灶。

libs下的so

這里可以只導入你cpu對應的版本即可能減小項目的大小惨恭,但我全部導入了;

導入libs
  • 根據(jù)jni生成so

我們看到j(luò)ni目錄下有h和cpp文件耙旦,這里面就實現(xiàn)了檢測的相關(guān)代碼脱羡,這里我們并不需要動他。

然后我們在jni下ndk_build一下來生成so文件免都。(如果不知道ndk_build的請看我上篇文章或百度)锉罐。

ndk_build生成so

如果這樣就生成了so了,我們可以在項目中看到生成了一個obj的目錄绕娘,


生成的so目錄

然后我們在將生成的libdetection_based_tracker.so放到j(luò)niLibs下的armeabi-v7a目錄下氓鄙。

導入so

至此已經(jīng)完成所有工作。

運行項目


運行結(jié)果

總結(jié)

雖然這個demo簡單业舍,但是在沒使用過opencv的人可能在配置中會出現(xiàn)各種問題抖拦;

1:導入opencv——sdk項目需修改版本號,保持跟app版本一致舷暮;

2:配置ndk(上面有寫到出現(xiàn)的問題)态罪;

3:引用opencv下的libs;在app下直接導入即可下面,不需要再opencvLibrary下導入复颈。

4:生成so;

5:將生成的so放入到j(luò)niLibs下的armeabi-v7a目錄下。

github下載地址

附上github下載地址沥割,此項目是完整項目導入了opencv的sdk,所有有點小大耗啦。
openCV人臉檢測demo下載地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市机杜,隨后出現(xiàn)的幾起案子帜讲,更是在濱河造成了極大的恐慌,老刑警劉巖椒拗,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件似将,死亡現(xiàn)場離奇詭異,居然都是意外死亡蚀苛,警方通過查閱死者的電腦和手機在验,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來堵未,“玉大人腋舌,你說我怎么就攤上這事∩罚” “怎么了块饺?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵耻陕,是天一觀的道長。 經(jīng)常有香客問我刨沦,道長,這世上最難降的妖魔是什么膘怕? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任想诅,我火速辦了婚禮,結(jié)果婚禮上岛心,老公的妹妹穿的比我還像新娘来破。我一直安慰自己,他們只是感情好忘古,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布徘禁。 她就那樣靜靜地躺著,像睡著了一般髓堪。 火紅的嫁衣襯著肌膚如雪送朱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天干旁,我揣著相機與錄音驶沼,去河邊找鬼。 笑死争群,一個胖子當著我的面吹牛回怜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播换薄,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼玉雾,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了轻要?” 一聲冷哼從身側(cè)響起复旬,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎冲泥,沒想到半個月后赢底,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡柏蘑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年幸冻,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咳焚。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡洽损,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出革半,到底是詐尸還是另有隱情碑定,我是刑警寧澤流码,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站延刘,受9級特大地震影響漫试,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜碘赖,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一驾荣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧普泡,春花似錦播掷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至砰嘁,卻和暖如春件炉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背矮湘。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工妻率, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人板祝。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓宫静,卻偏偏與公主長得像,于是被迫代替她去往敵國和親券时。 傳聞我的和親對象是個殘疾皇子孤里,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容