Exemple #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;
            }
        }
Exemple #2
0
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listBox1.SelectedIndex != -1)
            {
                _selected = (OCRSymbol) listBox1.Items[listBox1.SelectedIndex];

                textBox1.Text = _selected.Width.ToString();
                textBox2.Text = _selected.Height.ToString();
                textBox3.Text = _selected.TopOffset.ToString();

                DrawImg(_selected.Width, _selected.Height, -1, -1);
            }
        }