delphixe FSDK_MatchFaces 对比代码
时间: 2023-07-10 16:16:22 浏览: 104
以下是使用 delphixe FSDK_MatchFaces 进行人脸比对的示例代码:
```delphi
uses LuxandFaceSDK;
function CompareFaces(face1, face2: HImage): Integer;
var
score: TFaceSimilarity;
begin
FSDK_MatchFaces(face1, face2, @score);
Result := Round(score * 100);
end;
```
上面的代码定义了一个名为 CompareFaces 的函数,该函数接收两个人脸图像作为参数,并返回它们之间的相似度得分,得分是一个整数类型的百分比值。在函数中,我们通过调用 FSDK_MatchFaces 函数来计算两张人脸图像的相似度得分,并将其乘以100并四舍五入,以得到最终的百分比值。
相关问题
delphixe jpg FSDK_MatchFaces 对比代码
以下是使用 delphixe FSDK_MatchFaces 进行人脸比对的示例代码,其中包括将 JPG 格式的图像转换为 HImage 对象的代码:
```delphi
uses LuxandFaceSDK, JPEG;
function CompareFaces(jpg1, jpg2: TMemoryStream): Integer;
var
img1, img2: HImage;
score: TFaceSimilarity;
begin
img1 := nil;
img2 := nil;
try
img1 := Load_JPEG_Image(jpg1);
img2 := Load_JPEG_Image(jpg2);
FSDK_MatchFaces(img1, img2, @score);
Result := Round(score * 100);
finally
if img1 <> nil then FSDK_FreeImage(img1);
if img2 <> nil then FSDK_FreeImage(img2);
end;
end;
```
上面的代码定义了一个名为 CompareFaces 的函数,该函数接收两个 TMemoryStream 类型的 JPG 图像作为参数,并返回它们之间的相似度得分,得分是一个整数类型的百分比值。
在函数中,我们首先将 JPG 图像通过调用 Load_JPEG_Image 函数转换为 HImage 对象,然后再调用 FSDK_MatchFaces 函数计算它们之间的相似度得分。最后,我们将得分乘以100并四舍五入,以得到最终的百分比值。
请注意,在函数最后,我们需要使用 FSDK_FreeImage 函数释放 HImage 对象占用的内存空间,以避免内存泄漏。
delphixe LuxandFaceSDK FSDK_MatchFaces 人脸对比代码
以下是一个使用 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。
阅读全文