delphixe LuxandFaceSDK FSDK_MatchFaces 人脸对比代码
时间: 2024-02-19 09:59:00 浏览: 79
以下是一个使用 Delphi 和 LuxandFaceSDK 实现的人脸对比代码示例:
```delphi
uses LuxandFaceSDK;
function CompareFaces(Image1, Image2: TBitmap): Integer;
var
hImage1, hImage2: HBITMAP;
FaceTemplate1, FaceTemplate2: TFaceTemplate;
Similarity: Single;
begin
// 将 Bitmap 转换为 HBITMAP
hImage1 := ConvertBitmapToHBITMAP(Image1);
hImage2 := ConvertBitmapToHBITMAP(Image2);
// 提取人脸模板
if FSDK_GetFaceTemplateInRegion(hImage1, FSdkFaceDetectionMode, 0, 0, 0, 0, FaceTemplate1) <> FSDKE_OK then begin
Result := -1;
Exit;
end;
if FSDK_GetFaceTemplateInRegion(hImage2, FSdkFaceDetectionMode, 0, 0, 0, 0, FaceTemplate2) <> FSDKE_OK then begin
FSDK_FreeFaceTemplate(FaceTemplate1);
Result := -1;
Exit;
end;
// 对比人脸相似度
if FSDK_MatchFaces(FaceTemplate1, FaceTemplate2, Similarity) <> FSDKE_OK then begin
FSDK_FreeFaceTemplate(FaceTemplate1);
FSDK_FreeFaceTemplate(FaceTemplate2);
Result := -1;
Exit;
end;
FSDK_FreeFaceTemplate(FaceTemplate1);
FSDK_FreeFaceTemplate(FaceTemplate2);
// 返回相似度
Result := Round(Similarity * 100);
end;
```
这段代码包含一个名为 `CompareFaces` 的函数,可以将两个 `TBitmap` 类型的图像进行人脸对比,并返回相似度的百分比。在使用前,需要先调用 `FSDK_ActivateLibrary` 函数激活 LuxandFaceSDK。
阅读全文