//Ricomincio il controllo del libro dal nuovo punto di partenza private void riprendiControlloToolStripMenuItem_Click(object sender, EventArgs e) { try { //Riferimento aii nuovi numeri rilevati della pagina sx e dx int firstSx = numSxPageSx; int firstDx = numDxPageDx; // qui MessageBox.Show(firstSx.ToString() + " " + firstDx.ToString()); //Li salvo in memoria firstAfterCont = new CheckNumber(firstSx, firstDx); firstAfterCont.Storage(); //Riferimento ai due File name delle pagine insertFileNameSx = fileNamePageSx; insertFileNameDx = fileNamePageDx; //Inizo il controllo dopo che il primo controllo è stato fatto ed è stato trovato un errore StartControlAfterFirstCon(); } catch (Exception ex) { DialogResult result; result = MessageBox.Show(ex.Message); } }
//Inizia il controllo del libro dopo aver inserito le due pagine iniziali private void eseguiToolStripMenuItem_Click(object sender, EventArgs e) { try { canSelectedArea = false; Thread pageSx = new Thread(() => { BoxOCR firstPageSx = new BoxOCR(); //Ottengo l'immagine elaborata del riquadro Bitmap boxSx = firstPageSx.AdaptBox(areaBaseSx); //picOriginalSx.Image = boxSx; picOriginalSx.Image = OriginalImageSx; //Blocco il thread finche il thread che ha un riferimentoa ocrengine non termina l'esecuzione del codice lock (ocrengine) { //Ottengo la stringa del riquadro selezionato stringSxDetected = firstPageSx.GetStringTesseract(boxSx, ocrengine); } Match match = Regex.Match(stringSxDetected, @"\d+"); if (match.Success) { //Ottengo il primo numero della stringa numSxPageSx = int.Parse(match.Value); } MessageBox.Show(numSxPageSx.ToString()); //MessageBox.Show(stringSxDetected + " prova"); }); Thread pageDx = new Thread(() => { BoxOCR firstPageDx = new BoxOCR(); //Ottengo l'immagine elaborata del riquadro Bitmap boxDx = firstPageDx.AdaptBox(areaBaseDx); //picOriginalDx.Image = boxDx; picOriginalDx.Image = OriginalImageDx; //Blocco il thread finche il thread che ha un riferimentoa ocrengine non termina l'esecuzione del codice lock (ocrengine) { //Ottengo la stringa del riquadro selezionato stringDxDetected = firstPageDx.GetStringTesseract(boxDx, ocrengine); } Match match = Regex.Match(stringDxDetected, @"\d+"); if (match.Success) { //Ottengo il primo numero della stringa numDxPageDx = int.Parse(match.Value); } MessageBox.Show(numDxPageDx.ToString()); //MessageBox.Show(stringDxDetected + " prova"); }); pageSx.Start(); pageDx.Start(); while (pageSx.IsAlive == true && pageDx.IsAlive == true) { } //Una volta finito l'esecuzione dei thread li elimino pageSx.Abort(); pageDx.Abort(); int firstSx = numSxPageSx; int firstDx = numDxPageDx; //MessageBox.Show(firstSx.ToString() + " " + firstDx.ToString()); //Inserisco i due nuemri nell'oggetto CheckNumber per inziare il controllo del libro, I PRIMI DUE NUMERI DEVONO ESSERE //ESATTI first = new CheckNumber(firstSx, firstDx); //Salvo i due numeri in memoria first.Storage(); //Inserisco i due nomi delle immagini nelle rispettive stringhe di appoggio insertFileNameSx = fileNamePageSx; insertFileNameDx = fileNamePageDx; FileNameBook fileName = new FileNameBook(); //Ottengo il nome dell'ultima file del libro string lastFileName = fileName.LastFile(fileNamePageSx); //Ottengo il numero dell'ultimo file del libro lastNumber = fileName.NumberOfLastFile(lastFileName); //Inzio il controllo delle pagine StartControl(); } catch (Exception ex) { DialogResult result; result = MessageBox.Show(ex.Message); } }