All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.facelib.live.FaceLiveAndroid Maven / Gradle / Ivy

There is a newer version: 3.5.0
Show newest version
package net.facelib.live;

import static net.gdface.utils.ConditionChecks.checkNotNull;

import java.util.concurrent.atomic.AtomicReference;

import net.facelib.akcore.LicenseManager;
import net.gdface.image.BaseLazyImage;
import net.gdface.image.ImageErrorException;
import net.gdface.image.MatType;
import net.gdface.sdk.FRect;

/**
 * 活体检测 android/arm平台(线程安全)
* @author guyadong * */ public abstract class FaceLiveAndroid extends BaseFaceLive{ protected FaceLiveAndroid() { } /** * 执行活体检测 * @param matType 图像矩阵类型 * @param matData 图像矩阵 * @param width 图像宽度 * @param height 图像高度 * @param rect 人脸检测方法返回的人脸检测信息原始数据 * @return 0--非活体,1--活体,2--缓存标志,3--未知,<0 错误代码 * @deprecated 兼容要求保持,replaced by {@link #liveProcess(MatType, byte[], int, int, FRect, AtomicReference)} */ public int nativeLiveProcess(MatType matType, byte[] matData, int width, int height, double[] rect){ return nativeLiveProcess(matType,matData,width,height,rect,null); } /** * 执行活体检测 * @param matType 图像矩阵类型 * @param matData 图像矩阵 * @param width 图像宽度 * @param height 图像高度 * @param rect 人脸检测方法返回的人脸检测信息原始数据 * @param score [out]活体检测得分,可为{@code null} * @return 0--非活体,1--活体,2--缓存标志,3--未知,<0 错误代码 * @deprecated 兼容要求保持,replaced by {@link #liveProcess(MatType, byte[], int, int, FRect, AtomicReference)} */ public abstract int nativeLiveProcess(MatType matType, byte[] matData, int width, int height,double[] rect, AtomicReferencescore); /** * 执行活体检测 * @param matType 矩阵类型:RGB,BGR,RGBA,NV21 * @param matData 图像矩阵 * @param width 矩阵宽度 * @param height 矩阵高度 * @param rect 人脸检测方法返回的人脸检测信息原始数据 * @return 0--非活体,1--活体,2--缓存标志,3--未知,<0 错误代码 * @deprecated 兼容要求保持,replaced by {@link #liveProcess(MatType, byte[], int, int, FRect, AtomicReference)} */ public int nativeLiveProcess( String matType,byte[] matData,int width, int height, double[] rect){ return nativeLiveProcess(matType,matData,width,height,rect,null); } /** * 执行活体检测 * @param matType 矩阵类型:RGB,BGR,RGBA,NV21 * @param matData 图像矩阵 * @param width 矩阵宽度 * @param height 矩阵高度 * @param rect 人脸检测方法返回的人脸检测信息原始数据 * @param score [out]活体检测得分 * @return 0--非活体,1--活体,2--缓存标志,3--未知,<0 错误代码 * @deprecated 兼容要求保持,replaced by {@link #liveProcess(MatType, byte[], int, int, net.gdface.sdk.FRect, AtomicReference)} */ public int nativeLiveProcess( String matType,byte[] matData,int width, int height, double[] rect,AtomicReferencescore){ return nativeLiveProcess(MatType.valueOf(matType),matData, width, height,rect, score); } /** * 执行活体检测 * @param matType 矩阵类型:RGB,BGR,RGBA,NV21 * @param matData 图像矩阵 * @param width 矩阵宽度 * @param height 矩阵高度 * @param rect 人脸检测方法返回的人脸检测信息原始数据 * @param score [out]活体检测得分 * @return 0--非活体,1--活体,2--缓存标志,3--未知,<0 错误代码 * @deprecated 兼容要求保持,replaced by */ public abstract int liveProcess(MatType matType, byte[] matData, int width, int height, FRect rect, AtomicReferencescore); /** * 执行活体检测 * @param platformImage 当前平台的图像对象,对于android平台,类型为Bitmap,对于通用JDK,类型为BufferedImage * @param rect 人脸检测方法返回的人脸检测信息原始数据 * @param score [out]活体检测得分,可为{@code null} * @return 0--非活体,1--活体,2--缓存标志,3--未知,<0 错误代码 * @deprecated 兼容要求保持, */ public int liveProcess(Object platformImage,FRect rect,AtomicReferencescore){ try { BaseLazyImage lazyImage = BaseLazyImage.getLazyImageFactory().create(platformImage); return liveProcess(getNativeMatType(),toNativeMat(lazyImage),lazyImage.getWidth(),lazyImage.getHeight(),rect,score); } catch (ImageErrorException e) { throw new RuntimeException(e); } } /** * @return 返回SDK的授权信息管理实例,如果SDK不需要授权返回{@code null} */ public abstract LicenseManager getLicenseManager(); /** * 返回默认实例,为空抛出异常 * @return FaceLiveAndroid instance */ public static FaceLiveAndroid getInstance() { return (FaceLiveAndroid)(checkNotNull(BaseFaceLiveSupport.INSTANCE,"default instance is null")); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy