/// <summary>
 /// Release the unmanaged memory associated with this EigenFaceRecognizer
 /// </summary>
 protected override void DisposeObject()
 {
     if (_sharedPtr == IntPtr.Zero)
     {
         FaceInvoke.cveEigenFaceRecognizerRelease(ref _sharedPtr);
     }
     base.DisposeObject();
 }
 /// <summary>
 /// Create an EigenFaceRecognizer
 /// </summary>
 /// <param name="numComponents">The number of components</param>
 /// <param name="threshold">The distance threshold</param>
 public EigenFaceRecognizer(int numComponents = 0, double threshold = double.MaxValue)
 {
     _ptr = FaceInvoke.cveEigenFaceRecognizerCreate(numComponents, threshold, ref _faceRecognizerPtr, ref _basicFaceRecognizerPtr, ref _sharedPtr);
 }