示例#1
0
        //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);
            }
        }
示例#2
0
        //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);
            }
        }