Re-Write without checking mapped
This commit is contained in:
@ -413,22 +413,28 @@ public class FaceRecognition : DisposableObject
|
||||
return null;
|
||||
}
|
||||
|
||||
public static List<double> FaceDistances(IEnumerable<FaceEncoding> faceEncodings, FaceEncoding faceToCompare)
|
||||
public static List<FaceDistance> FaceDistances(List<FaceDistance> faceDistances, FaceDistance faceDistanceToCompare)
|
||||
{
|
||||
List<double>? results = new();
|
||||
if (faceEncodings is null)
|
||||
throw new NullReferenceException(nameof(faceEncodings));
|
||||
if (faceToCompare is null)
|
||||
throw new NullReferenceException(nameof(faceToCompare));
|
||||
faceToCompare.ThrowIfDisposed();
|
||||
FaceEncoding[] array = faceEncodings.ToArray();
|
||||
if (array.Any(encoding => encoding.IsDisposed))
|
||||
throw new ObjectDisposedException($"{nameof(faceEncodings)} contains disposed object.");
|
||||
if (array.Length == 0)
|
||||
return results;
|
||||
foreach (FaceEncoding faceEncoding in array)
|
||||
using (Matrix<double> diff = faceEncoding.Encoding - faceToCompare.Encoding)
|
||||
results.Add(DlibDotNet.Dlib.Length(diff));
|
||||
List<FaceDistance> results = new();
|
||||
if (faceDistances is null)
|
||||
throw new NullReferenceException(nameof(faceDistances));
|
||||
if (faceDistances.Count != 0)
|
||||
{
|
||||
double length;
|
||||
FaceDistance result;
|
||||
if (faceDistanceToCompare is null || faceDistanceToCompare.Encoding is not FaceEncoding faceEncodingToCompare)
|
||||
throw new NullReferenceException(nameof(faceDistanceToCompare));
|
||||
faceEncodingToCompare.ThrowIfDisposed();
|
||||
foreach (FaceDistance faceDistance in faceDistances)
|
||||
{
|
||||
if (faceDistance.Encoding is not FaceEncoding faceEncoding || faceEncoding.IsDisposed)
|
||||
throw new ObjectDisposedException($"{nameof(faceDistances)} contains disposed object.");
|
||||
using (Matrix<double> diff = faceEncoding.Encoding - faceEncodingToCompare.Encoding)
|
||||
length = DlibDotNet.Dlib.Length(diff);
|
||||
result = new(faceDistance, length);
|
||||
results.Add(result);
|
||||
}
|
||||
}
|
||||
return results;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user