You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

78 lines
3.6 KiB

using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
using System;
namespace DemoUI.SDK
{
/// <summary>
/// 人脸检测
/// </summary>
public class NativeCWFaceDetection
{
private const string CloudWalkSDKDll = "CWFaceSDK.dll";
/// <summary>
/// 创建检测器句柄
/// </summary>
/// <param name="pConfigFile">模型参数配置文件</param>
/// <param name="pLicence">授权码(仅用于安卓平台,PC端传空即可)</param>
/// <returns>如果创建成功,返回detector句柄,否则返回空</returns>
[DllImport(CloudWalkSDKDll, EntryPoint = "cwCreateDetHandle", CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr cwCreateDetHandle(out cw_errcode_t errCode, string pConfigFile, string pLicence);
/// <summary>
/// 释放创建的检测器
/// </summary>
/// <param name="pDetector"></param>
[DllImport(CloudWalkSDKDll, EntryPoint = "cwReleaseDetHandle", CallingConvention = CallingConvention.Cdecl)]
public static extern void cwReleaseDetHandle(IntPtr pDetector);
/// <summary>
/// 获取检测器参数
/// </summary>
/// <param name="pDetector"></param>
/// <param name="param"></param>
/// <returns></returns>
[DllImport(CloudWalkSDKDll, EntryPoint = "cwGetFaceParam", CallingConvention = CallingConvention.Cdecl)]
public static extern cw_errcode_t cwGetFaceParam(IntPtr pDetector, out cw_det_param_t param);
/// <summary>
/// 设置检测器参数(必须先调用cwGetFaceParam再使用此函数)
/// </summary>
/// <param name="pDetector"></param>
/// <param name="param"></param>
/// <returns></returns>
[DllImport(CloudWalkSDKDll, EntryPoint = "cwSetFaceParam", CallingConvention = CallingConvention.Cdecl)]
public static extern cw_errcode_t cwSetFaceParam(IntPtr pDetector, ref cw_det_param_t param);
/// <summary>
/// 人脸检测跟踪接口
/// </summary>
/// <param name="pDetector"></param>
/// <param name="pFrameImg">被检测图像. 如果传入的数据只有bgr,则nImageChannel 固定为3,如果pimageData为其他格式,则还应有一个参数来表示图像格式</param>
/// <param name="pFaceBuffer">检测到的人脸,该缓冲区初始化必须足够大</param>
/// <param name="iBuffLen">最大检测到人脸个数,主要定义了pFaceBuffer的初始化大小;如果实际人脸个数多于此值则只能返回nMaxFaceNumber个人脸.</param>
/// <param name="nFaceNum">实际检测到的人脸个数</param>
/// <param name="iOp">人脸检测接口可以进行的操作(POS是默认操作,其他项可选;返回结果和操作选项是对应的),具体参考DET_OP定义.</param>
/// <returns></returns>
[DllImport(CloudWalkSDKDll, EntryPoint = "cwFaceDetection", CallingConvention = CallingConvention.Cdecl)]
public static extern cw_errcode_t cwFaceDetection(IntPtr pDetector, ref cw_img_t pFrameImg, IntPtr pFaceBuffer, int iBuffLen, ref int nFaceNum, int iOp);
/// <summary>
/// 清除检测跟踪状态信息函数
/// </summary>
/// <param name="pDetector">检测器句柄</param>
/// <returns>成功返回CW_OK,失败返回其他</returns>
[DllImport(CloudWalkSDKDll, EntryPoint = "cwResetDetTrackState", CallingConvention = CallingConvention.Cdecl)]
public static extern cw_errcode_t cwResetDetTrackState(IntPtr pDetector);
}
}