1.opencv SDK
引用opencv的Java API實現(xiàn)人臉的識別评汰,Java API通過AIDL調(diào)用Opencv Manager來使用opencv,使用封裝的opencv_java.so庫般婆,避免另外再下載Opencv Manager清寇。
opencv官方網(wǎng)站:https://opencv.org/
我們需要先下載opencv的SDK尺铣,解壓SDK得到下面的文件
目錄說明:
apk:官方提供的Manager的apk文件
samples:提供的示例和編譯好的apk
sdk:庫文件
2.環(huán)境搭建
官方提供的示例都是Eclipse Demo工程颂暇,我們將在Android Studio下搭建環(huán)境。
1.創(chuàng)建一個新的工程opencvdemo
2.SDK下的java工程copy到工程中
2.在settings.gradle中配置一下窗骑,主module引用opencvjava module女责。這個時候可能會出現(xiàn)一些錯誤,需要修改compileSdkVersion或者buildToolsVersion等等创译。
3.SDK/native/libs下的libopencv_java3.so庫copy到工程中
4.把SDK\etc\lbpcascades文件下的lbpcascade_frontalface.xml文件copy到raw下
3.人臉識別
官方提供的人臉識別示例工程
按照官方提供的示例即可實現(xiàn)人臉的識別
4.人臉相似度
人臉相似度的對比抵知,是兩個Mat的對比。
Mat是OpenCV中用于存儲圖像信息的類软族,作為圖像信息的載體刷喜。
深入了解:https://blog.csdn.net/hfut_why/article/details/84678805
opencvjava中Imgproc提供了compareHist方法,比較兩個Mat的相似度立砸。
比較兩個Mat的相似度掖疮,兩個Mat的cols和rows一定要相同,否則程序?qū)⒊霈F(xiàn)一個Surprise仰禽。
Mat不一樣就要修改其中一個Mat的大小氮墨。
Imgproc提供了resize方法修改Mat的大小纺蛆。
參數(shù)說明? ? ?src:原Mat吐葵,dst:輸入Mat,Size 輸出Mat的大小桥氏。