public DigitRecognitionScreen( IApplicationManager appManager, IEventService eventService) { this.appManager = appManager; var currentDirectory = Directory.GetCurrentDirectory(); var imagePath = Path.Combine(currentDirectory, "Resources", "train-images.idx3-ubyte"); var labelPath = Path.Combine(currentDirectory, "Resources", "train-labels.idx1-ubyte"); if (!File.Exists(imagePath)) { this.ExtractImagesFromZip(); } // Extract the training data imageExtraction = new ImageExtraction( imagePath, labelPath, ImageWidth, ImageHeight); imageExtraction.LoadImages(); imageCanvas = GetImageCanvas(); feedbackText = new Text("Training Network...", new Font("Resources\\font.ttf")); feedbackText.Position = new Vector2f(appManager.GetWindowSize().X * 0.55f, appManager.GetWindowSize().Y / 2); feedbackText.FillColor = Color.Black; Task.Run(() => { this.TrainNetwork(); feedbackText.DisplayedString = "Ready to go"; }); eventService.RegisterKeyboardCallback( Id, new KeyPressCallbackEventArgs(Keyboard.Key.Right), NextImage); eventService.RegisterKeyboardCallback( Id, new KeyPressCallbackEventArgs(Keyboard.Key.Left), PreviousImage); }
public int ExtractImages(int[] Page, int ExtractionType) { var rs = new PdfReader(m_filename); PdfDictionary pg;// = rs.GetPageN(15); string path = ""; var imgext = new ImageExtraction(); int nImages = 0; using (var r = new PdfReader(m_filename)) { switch (ExtractionType) { case 1: //When pages are not specified, extract images from the entire pdf //Find images in all the pages { for (int i = 1; i <= r.NumberOfPages; i++) { pg = rs.GetPageN(i); var images = imgext.GetImagesFromPdf(pg, rs); for (int cnt = 0; cnt < images.Count; cnt++) { path = Path.Combine(m_DirPath, String.Format(@"{0}_{1}.png", i, cnt + 1)); images[cnt].Save(path); nImages++; } } break; } case 2: //When the more than 1 page is specified { for (int i = 0; i < Page.Length; i++) { pg = rs.GetPageN(Page[i]); var images = imgext.GetImagesFromPdf(pg, rs); for (int cnt = 0; cnt < images.Count; cnt++) { path = Path.Combine(m_DirPath, String.Format(@"{0}_{1}.png", Page[i], cnt + 1)); images[cnt].Save(path); nImages++; } } break; } case 3: //When only 1 page is specified { pg = rs.GetPageN(Page[0]); var images = imgext.GetImagesFromPdf(pg, rs); for (int cnt = 0; cnt < images.Count; cnt++) { path = Path.Combine(m_DirPath, String.Format(@"{0}_{1}.png", Page[0], cnt + 1)); images[cnt].Save(path); nImages++; } break; } } } return(nImages); }