/// <summary> /// Caculate the eigen images for the specific traning image /// </summary> public static void CalcEigenObjects(Bitmap[] trainingImages, int maxIter, double eps, out FloatImage[] eigenImages, out FloatImage avg) { int width = trainingImages[0].Width; int height = trainingImages[0].Height; if (maxIter <= 0 || maxIter > trainingImages.Length) { maxIter = trainingImages.Length; } int maxEigenObjs = maxIter; eigenImages = new FloatImage[maxEigenObjs]; for (int i = 0; i < eigenImages.Length; i++) { eigenImages[i] = new FloatImage(width, height); } avg = new FloatImage(width, height); ManagedEigenObjects.CalcEigenObjects(trainingImages, maxIter, eps, eigenImages, null, avg); }
/// <summary> /// Decompose the image as eigen values, using the specific eigen vectors /// </summary> public static float[] EigenDecomposite(Bitmap src, FloatImage[] eigenImages, FloatImage avg) { return(ManagedEigenObjects.EigenDecomposite(src, eigenImages, avg)); }