private ArrayList Recognize() { ArrayList Info = new ArrayList(); double[] Data = Image_Processing.ToMatrix(PBMain.ImageOnPanel, (int)NUDHeight.Value, (int)NUDWidth.Value); foreach (double Pixel in Data) { Info.Add(Pixel); } return(Info); }
private void LoadTrainingSet() { if (CBFD.Checked) { imageList1.Images.Clear(); termCrit = new MCvTermCriteria(0.001); imgRecognizer = new EigenObjectRecognizer(emguImages, emguImagesLabels, 25, ref termCrit); Dictionary <Matrix <float>, Image <Gray, float> > Entries = new Dictionary <Matrix <float>, Image <Gray, float> >(); for (int i = 0; i < imgRecognizer.EigenImages.Length; i++) { Entries.Add(imgRecognizer.EigenValues[i], imgRecognizer.EigenImages[i]); imageList1.Images.Add(Image.FromHbitmap(imgRecognizer.EigenImages[i].Bitmap.GetHbitmap())); } SetImages(); KeyValuePair <int, double>[] sortedDic; ArrayList Data = new ArrayList(); foreach (Matrix <float> T in imgRecognizer.EigenValues) { Dictionary <int, double> Temp = new Dictionary <int, double>(); for (int i = 0; i < T.Data.Length; i++) { Temp.Add(i, T.Data[i, 0]); } var V = (from entry in Temp orderby entry.Value descending select entry); sortedDic = V.ToArray(); Data.Add(sortedDic); } ArrayList EigenVectors = new ArrayList(); for (int i = 0; i < Data.Count; i++) { KeyValuePair <int, double>[] Test = (KeyValuePair <int, double>[])Data[i]; double[] Vector = new double[25]; for (int j = 0; j < 25; j++) { //Vector[j]=imgRecognizer.EigenImages[i].Data } } } ArrayList Response = new ArrayList(); for (int i = 0; i < imageList1.Images.Count; i++) { Response.Add(0); } int RIndex = 0; foreach (Image IM in imageList1.Images) { Response[RIndex] = 1; ArrayList Info = new ArrayList(); Bitmap B = new Bitmap(IM); double[] Data = Image_Processing.ToMatrix(B, IM.Size.Height, IM.Size.Width); int Counter = 0; foreach (double Pixel in Data) { Info.Add(Pixel); Counter++; } Manager.ExternalDataSource.Add(Response, Info); Response = new ArrayList(); for (int i = 0; i < imageList1.Images.Count; i++) { Response.Add(0); } RIndex++; } MainInterface_Ref.TSSStatusLbl.Text = "Done Loading."; }