# OpenCVForAndroid
**Repository Path**: it_zpf/OpenCVForAndroid
## Basic Information
- **Project Name**: OpenCVForAndroid
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2019-08-19
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 说明
运行Demo前请先安装 [OpenCV Manager](https://github.com/kongqw/KqwFaceDetectionDemo/tree/master/OpenCVManager) **(必须!!)**
并给Demo授予CAMERA权限
[](https://jitpack.io/#kongqw/FaceDetectLibrary)
------------
## 部署
Step 1. Add the JitPack repository to your build file
Add it in your root build.gradle at the end of repositories:
``` gradle
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
```
Step 2. Add the dependency
``` gradle
dependencies {
compile 'com.github.kongqw:FaceDetectLibrary:1.2.1'
}
```
Step 3. Add it in your app build.gradle
``` gradle
android {
……
packagingOptions {
exclude 'META-INF/services/javax.annotation.processing.Processor'
pickFirst 'org/bytedeco/javacpp/macosx-x86_64/libusb-1.0.dylib'
pickFirst 'META-INF/maven/org.bytedeco.javacpp-presets/opencv/pom.properties'
pickFirst 'META-INF/maven/org.bytedeco.javacpp-presets/opencv/pom.xml'
pickFirst 'META-INF/maven/org.bytedeco.javacpp-presets/ffmpeg/pom.properties'
pickFirst 'META-INF/maven/org.bytedeco.javacpp-presets/ffmpeg/pom.xml'
}
}
```
Step 4. Set screen orientation in your AndroidManifest.xml
``` xml
……
```
## XML
``` xml
```
## Activity
### 添加人脸检测监听
``` java
CameraFaceDetectionView cameraFaceDetectionView = (CameraFaceDetectionView) findViewById(R.id.cameraFaceDetectionView);
cameraFaceDetectionView.setOnFaceDetectorListener(new CameraFaceDetectionView.OnFaceDetectorListener() {
@Override
public void onFace(Mat mat, Rect rect) {
}
});
```
### 添加加载OpenCV的监听
``` java
mCameraFaceDetectionView.setOnOpenCVInitListener(new OnOpenCVInitListener() {
@Override
public void onLoadSuccess() {
Log.i(TAG, "onLoadSuccess: ");
}
@Override
public void onLoadFail() {
Log.i(TAG, "onLoadFail: ");
}
@Override
public void onMarketError() {
Log.i(TAG, "onMarketError: ");
}
@Override
public void onInstallCanceled() {
Log.i(TAG, "onInstallCanceled: ");
}
@Override
public void onIncompatibleManagerVersion() {
Log.i(TAG, "onIncompatibleManagerVersion: ");
}
@Override
public void onOtherError() {
Log.i(TAG, "onOtherError: ");
}
});
```
### 加载OpenCV
``` java
mCameraFaceDetectionView.loadOpenCV(getApplicationContext());
```
### 切换摄像头
``` java
mCameraFaceDetectionView.switchCamera();
```
### 保存人脸特征
``` java
boolean isSave = FaceUtil.saveImage(Context context, Mat mat, Rect rect, String fileName);
```
### 删除人脸特征
``` java
boolean isSave = FaceUtil.deleteImage(Context context, String fileName);
```
### 提取人脸特征
> 用于显示,对比直接调用 FaceUtil.compare 即可。
``` java
Bitmap bitmap = FaceUtil.getImage(Context context, String fileName);
```
### 人脸识别(特征对比)
> 特征文件不存在没有抛异常,返回-1.
``` java
double score = FaceUtil.compare(Context context, String fileName1, String fileName2);
```