Esempio n. 1
0
        private void LoadRegister(string fileName)
        {
            registerPV.Image             = PictureView.LoadPlaceholder();
            debugButton.Enabled          = false;
            nextRegisterButton.Enabled   = false;
            selectRegisterButton.Enabled = false;
            cell1         = null;
            cell2         = null;
            imageFileName = fileName;
            Thread worker = new Thread(new ThreadStart(delegate {
                originalImage = ImageUtil.ToBlackAndWhite(ImageUtil.LoadImage(fileName));

                currentTable = TableOCR.Program.RecognizeTable(originalImage);
                if (currentTable.IsEmpty())
                {
                    registerPV.Invoke(new EventHandler(delegate {
                        MessageBox.Show("Не удалось распознать таблицу");
                    }));
                }

                Bitmap processedImage = new Bitmap(originalImage);
                Graphics g            = Graphics.FromImage(processedImage);
                currentTable.ForEach(table => {
                    table.DrawTable(g, new Pen(Color.Red, 2));
                });
                g.Dispose();

                registerPV.Image = processedImage;
                this.Invoke(new EventHandler(delegate {
                    this.Text = fileName;
                }));
                debugButton.Invoke(new EventHandler(delegate {
                    debugButton.Enabled = true;
                }));
                selectRegisterButton.Invoke(new EventHandler(delegate {
                    selectRegisterButton.Enabled = true;
                }));
                nextRegisterButton.Invoke(new EventHandler(delegate {
                    nextRegisterButton.Enabled = true;
                }));
            }));

            worker.IsBackground = true;
            worker.Start();
        }
Esempio n. 2
0
        private void ProcessNextImage()
        {
            Util.NewThread(() => {
                registerPV.Image = PictureView.LoadPlaceholder();

                currentFileName = NextImageName();
                this.Text       = currentFileName;

                origImage    = ImageUtil.LoadImage(currentFileName);
                bwImage      = ImageUtil.ToBlackAndWhite(origImage);
                currentImage = new Bitmap(bwImage);

                currentTable = TableOCR.Program.RecognizeTable(currentImage);
                Graphics g   = Graphics.FromImage(currentImage);
                Pen p        = new Pen(Color.FromArgb(255, 255, 0, 0), 2);
                currentTable.ForEach(table => table.DrawTable(g, p));
                g.Dispose();

                registerPV.Image = currentImage;
            });
        }