跳转至
本 SDK 仅适用于过去 3 年内发布的设备。我们定期优化和更新 SDK，以确保兼容性和性能。对于超过 3 年的旧设备，我们不保证兼容性，也不会提供技术支持。

# NET_SDK_FaceMatchOperate

### 接口定义

C++C#

    1
    2
    3
    4
    5
    6
    7
    8
    BOOL NET_SDK_FaceMatchOperate(
        LONG lUserID,
        DWORD dwCommand,
        LPVOID lpInBuffer,
        DWORD dwInBufferSize,
        LPVOID lpOutBuffer,
        DWORD dwOutBufferSize,
        LPDWORD lpBytesReturned);

    1
    2
    3
    4
    5
    6
    7
    8
    public static extern bool NET_SDK_FaceMatchOperate(
        Int32 lUserID,
        int dwCommand,
        IntPtr lpInBuffer,
        UInt32 dwInBufferSize,
        IntPtr lpOutBuffer,
        UInt32 dwOutBufferSize,
        ref uint lpBytesReturned);

### 功能描述

人脸对比相关操作。包括：是否支持人脸对比、人脸目标组管理，人脸目标管理，对比报警配置、获取目标数据。

### 参数说明

参数 | 类型 | 说明
--- | --- | ---
lUserIDin | LONG | 用户ID，`NET_SDK_Login`或`NET_SDK_LoginEx`的返回值。
dwCommandin | DWORD | 命令类型，参考`NET_SDK_FACE_MATCH_OPERATE_TYPE`。
lpInBufferin | LPVOID | 发送数据的缓冲指针。
dwInBufferSizein | DWORD | 发送数据的缓冲长度(以字节为单位)。
lpOutBufferout | LPVOID | 接收数据的缓冲指针。
dwOutBufferSizein | DWORD | 接收数据的缓冲长度(以字节为单位)。
lpBytesReturnedout | LPDWORD | 实际收到的数据长度指针，不大于dwOutBufferSize。

### 返回值

- 类型：BOOL

- 说明：成功返回TRUE,失败返回FALSE。

### 备注

不同的获取功能对应不同的结构体和命令号，如下表所示：

Note

IPC仅支持命令：NET_SDK_GET_FACE_MATCH_SUPPORT、NET_SDK_ADD_FACE_IPC、NET_SDK_DEL_FACE_IPC、NET_SDK_EDIT_FACE_IPC、NET_SDK_GET_FACE_IPC_LIST。

dwCommand 宏定义 | dwCommand 对应值 | dwCommand 含义 | 发送数据 | 接收数据
--- | --- | --- | --- | ---
NET_SDK_GET_FACE_MATCH_SUPPORT | 0x01 | 是否支持人脸比对 | NULL | DWORD
NET_SDK_GET_FACE_INFO_GROUP_LIST | 0x02 | 获取目标组 list | NULL | `NET_SDK_FACE_INFO_GROUP_ITEM`*num
NET_SDK_ADD_FACE_INFO_GROUP | 0x03 | 增加目标组 | `NET_SDK_FACE_INFO_GROUP_ADD` | NULL
NET_SDK_SET_FACE_INFO_GROUP | 0x04 | 编辑目标组 | `NET_SDK_FACE_INFO_GROUP_ITEM` | NULL
NET_SDK_DEL_FACE_INFO_GROUP | 0x05 | 删除目标组 | `NET_SDK_FACE_INFO_GROUP_DEL` | NULL
NET_SDK_GET_FACE_INFO_LIST | 0x06 | 获取目标 list | `NET_SDK_FACE_INFO_LIST_GET` | `NET_SDK_FACE_INFO_LIST`
NET_SDK_ADD_FACE_INFO | 0x07 | 增加目标 | `NET_SDK_FACE_INFO_ADD` | NULL
NET_SDK_SET_FACE_INFO | 0x08 | 编辑目标 | `NET_SDK_FACE_INFO_EDIT` | NULL
NET_SDK_DEL_FACE_INFO | 0x09 | 删除目标 | `NET_SDK_FACE_INFO_DEL` | NULL
NET_SDK_GET_FACE_MATCH_ALARM | 0x0A | 获取比对报警联动 | NULL | `NET_SDK_FACE_MATCH_ALARM`
NET_SDK_SET_FACE_MATCH_ALARM | 0x0B | 设置比对报警联动 | `NET_SDK_FACE_MATCH_ALARM` | NULL
NET_SDK_GET_FACE_INFO_IMG | 0x0C | 获取目标数据 | `NET_SDK_FACE_INFO_IMG_GET` | `NET_SDK_FACE_INFO_IMG_DATA`
NET_SDK_SEARCH_IMAGE_BY_IMG | 0x0D | 以图搜图 | `NET_SDK_SEARCH_IMAGE_BY_IMAGE` | `NET_SDK_SEARCH_IMAGE_BY_IMAGE_LIST`
NET_SDK_SEARCH_CH_SNAP_FACE_IMG_LIST | 0x0E | 查询通道人脸列表 | `NET_SDK_CH_SNAP_FACE_IMG_LIST_SEARCH` | `NET_SDK_CH_SNAP_FACE_IMG_LIST`
NET_SDK_SEARCH_CH_SNAP_FACE_IMG | 0x0F | 查询通道人脸图片数据 | `NET_SDK_FACE_IMG_INFO_CH` | `NET_SDK_FACE_INFO_IMG_DATA`
NET_SDK_ADD_FACE_IPC | 0x10 | IPC 添加人脸 | `NET_SDK_IVE_FACE_MATCH_ADD_ALBUM_INFO` + 人脸图像 | `NET_SDK_NET_REPLY_RESULT`
NET_SDK_DEL_FACE_IPC | 0x11 | IPC 删除人脸 | `NET_SDK_IVE_FACE_MATCH_DELE_ALBUM_INFO` | `NET_SDK_NET_REPLY_RESULT`
NET_SDK_EDIT_FACE_IPC | 0x12 | IPC 编辑人脸 | `NET_SDK_IVE_FACE_MATCH_MODIFY_ALBUM_INFO` + 人脸图像(不修改则不传) | `NET_SDK_NET_REPLY_RESULT`
NET_SDK_GET_FACE_IPC_LIST | 0x13 | IPC 获取人脸列表 | `NET_SDK_IVE_FACE_MATCH_QUERY_ALBUM_INFO` | total（int32:符合查询条件的总数目）+ num（int3，当前次返回的结果条目数）+ `NET_SDK_IVE_FACE_MATCH_QUERY_ALBUM_REPLY_INFO`*num
NET_SDK_COPY_FACE_INFO | 0x14 | 复制人脸信息 | `NET_SDK_FACE_INFO_COPY` | NULL
NET_SDK_SEARCH_IMAGE_BY_IMG_V2 | 0x15 | 以图搜图 V2 | `NET_SDK_SEARCH_IMAGE_BY_IMAGE_V2` | `NET_SDK_CH_SNAP_FACE_IMG_LIST`
NET_SDK_SEARCH_SMART_TARGET_LIST | 0x16 | 搜索目标列表 | `NET_SDK_SEARCH_SMART_TARGET` | `NET_SDK_SMART_TARGET_SNAP_IMG_LIST`
NET_SDK_SEARCH_SMART_TARGET_IMG | 0x17 | 搜索目标图片 | `NET_SDK_SMART_TARGET_SNAP_IMG` | `NET_SDK_FACE_INFO_IMG_DATA`
NET_SDK_GET_FACE_IMG_STATISTIC_V2 | 0x18 | 获取人脸图片数据统计 v2 | `NET_SDK_FACE_IMG_STATISTIC_V2` | `NET_SDK_FACE_IMG_STATISTIC_RESULT_LIST`
NET_SDK_GET_FACE_INFO | 0x19 | 获取人脸信息 | `NET_SDK_FACE_INFO_LIST_GET` | `NET_SDK_FACE_INFO_LIST`

错误码