Android Studio opencv识别人脸和对比图片相似度

1.opencv SDK

引用opencv的Java API实现人脸的识别,Java API通过AIDL调用Opencv Manager来使用opencv,使用封装的opencv_java.so库,避免另外再下载Opencv Manager。

opencv官方网站:https://opencv.org/

我们需要先下载opencv的SDK,解压SDK得到下面的文件


目录说明:

apk:官方提供的Manager的apk文件

samples:提供的示例和编译好的apk

sdk:库文件

2.环境搭建

官方提供的示例都是Eclipse Demo工程,我们将在Android Studio下搭建环境。

1.创建一个新的工程opencvdemo

2.SDK下的java工程copy到工程中


2.在settings.gradle中配置一下,主module引用opencvjava module。这个时候可能会出现一些错误,需要修改compileSdkVersion或者buildToolsVersion等等。

3.SDK/native/libs下的libopencv_java3.so库copy到工程中


4.把SDK\etc\lbpcascades文件下的lbpcascade_frontalface.xml文件copy到raw下


3.人脸识别

官方提供的人脸识别示例工程


按照官方提供的示例即可实现人脸的识别


4.人脸相似度

人脸相似度的对比,是两个Mat的对比。

Mat是OpenCV中用于存储图像信息的类,作为图像信息的载体。

深入了解:https://blog.csdn.net/hfut_why/article/details/84678805

opencvjava中Imgproc提供了compareHist方法,比较两个Mat的相似度。

比较两个Mat的相似度,两个Mat的cols和rows一定要相同,否则程序将出现一个Surprise。

Mat不一样就要修改其中一个Mat的大小。

Imgproc提供了resize方法修改Mat的大小。


参数说明     src:原Mat,dst:输入Mat,Size 输出Mat的大小。

demo体验传送门:https://github.com/myNameIsName/opencvdemo

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容