Beispiel #1
0
        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                RGB = new[] { int.Parse(textBox1.Text), int.Parse(textBox2.Text), int.Parse(textBox3.Text) };

                var files = _dir.GetFiles("*.png", SearchOption.AllDirectories);

                var symbols = new List <OCRSymbol>();
                foreach (var fileInfo in files)
                {
                    var img = (Bitmap)Image.FromFile(fileInfo.FullName);
                    var s   = new OCRSymbol(fileInfo.Name.Substring(0, fileInfo.Name.LastIndexOf(".")), img.Width,
                                            img.Height);

                    var good = new List <Point>();
                    var bad  = new List <Point>();

                    for (int i = 0; i < img.Width; i++)
                    {
                        for (int j = 0; j < img.Height; j++)
                        {
                            var pixel = img.GetPixel(i, j);

                            if ((pixel.R == RGB[0]) && (pixel.G == RGB[1]) && (pixel.B == RGB[2]))
                            {
                                bad.Add(new Point(i, j));
                            }
                            else
                            {
                                good.Add(new Point(i, j));
                            }
                        }
                    }
                    s.Good = good;
                    s.Bad  = bad;
                    symbols.Add(s);
                }

                var maxWidth  = symbols.Max(c => c.Width);
                var maxHeight = symbols.Max(c => c.Height);

                symbols.ForEach(c => c.TopOffset = maxHeight - c.Height);

                OCRFont = new OCRFont(maxWidth, maxHeight);

                OCRFont.Symbols = symbols;

                ClosedByOk = true;
                Close();
            }
            catch (Exception)
            {
                MessageBox.Show("Ошибка ввода");
                throw;
            }
        }
Beispiel #2
0
        private void импортToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var w = new ImportForm();

            w.ShowDialog();
            if (ImportForm.ClosedByOk)
            {
                _font = ImportForm.OCRFont;
                ReloadFont();
            }
        }
Beispiel #3
0
        private void загрузитьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var dlg = new OpenFileDialog();

            dlg.Filter = "*.pft|*.pft";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                _font = OCRFont.Load(dlg.FileName);
                ReloadFont();
            }
        }
Beispiel #4
0
        public MainForm()
        {
            InitializeComponent();

            var prms = Environment.CommandLine.Split(' ');

            if (prms.Length >= 2)
            {
                var startFont = prms[1];
                if (File.Exists(startFont.Trim('"')))
                {
                    _font = OCRFont.Load(startFont.Trim('"'));
                    ReloadFont();
                }
            }
        }
Beispiel #5
0
        private void button1_Click(object sender, EventArgs e)
        {
            int[] RGB;

            if (checkBox1.Checked)
            {
                RGB = new[] { 255, 255, 255 };
            }
            else
            {
                RGB = new[] { 0, 0, 0 };
            }

            _font = OCRFont.Load(button2.Text);

            _reader = new OCRReader(_font, Color.FromArgb(RGB[0], RGB[1], RGB[2]),
                                    checkBox1.Checked ? true : false);


            if ((_font == null) || (pictureBox1.Image == null))
            {
                MessageBox.Show("Выберите изображение и шрифт");
                return;
            }

            var d = DateTime.Now;

            var    img = (Bitmap)pictureBox1.Image;
            Bitmap s;

            textBox1.Text = _reader.Recognize(ref img, out s);

            pictureBox2.Image = _reader.Crop((Bitmap)pictureBox1.Image);

            pictureBox3.Image = s;

            var time = DateTime.Now - d;

            button1.Text = time.TotalMilliseconds.ToString();
        }