Ejemplo n.º 1
0
        //МЕТОДЫ, ИСПОЛЬЗУЕМЫЕ ДЛЯ СОЗДАНИЯ ЭТАЛОНОВ
        //----------------------------------------------------------------
        //получить txt файлы для картинок с конкретными символами в папке
        private void CreateEtalonMatrix(object sender, EventArgs e)
        {
            //настроика диалога
            FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
            DialogResult        result = folderBrowserDialog.ShowDialog();

            if (result == DialogResult.OK && !string.IsNullOrWhiteSpace(folderBrowserDialog.SelectedPath))
            {
                string[] files = Directory.GetFiles(folderBrowserDialog.SelectedPath);

                foreach (string file in files)
                {
                    //считываем изображение из файла
                    System.Drawing.Bitmap image = new Bitmap(file);

                    //произведем бинаризацию изображения
                    BinarizedImage binarizedImage = new BinarizedImage(image);

                    //матрица эталонная для символа
                    byte[,] etalonArray = MyTextRecognizer.CreateMatrix_16X16(binarizedImage);

                    string fileName = Path.GetFileName(file);

                    fileName = fileName.Replace(".png", "");

                    MyArraySerializer.SerializeArray(etalonArray, new StreamWriter(txtPath + fileName + ".txt"));
                }
            }
        }
Ejemplo n.º 2
0
        //выбрать из проводника изображение для распознавания
        private void chooseImageFromExplorer(object sender, EventArgs e)
        {
            //настроика диалога
            openFileDialog.InitialDirectory = "c:\\";
            openFileDialog.Filter           = "png files (*.png)|*.png|All files (*.*)|*.*";
            openFileDialog.FilterIndex      = 2;
            openFileDialog.RestoreDirectory = true;

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                //путь к файлу
                String filePath = openFileDialog.FileName;

                //считываем изображение из файла
                System.Drawing.Bitmap image = new Bitmap(filePath);

                //очистим полотно
                //canvas.Clear(Color.FromArgb(110, 110, 110));
                //отрисуем картинку на полотне
                //canvas.DrawImage(image, new PointF(20, 20));

                //бинаризация изображения
                BinarizedImage binarizedImage = new BinarizedImage(image);

                //отрисуем бинаризованную картинку на полотне
                //canvas.DrawImage(binarizedImageBitmap, new PointF(20, binarizedImageBitmap.Size.Height+40));
                //imageSaver.Save(binarizedImage.GetBitmap(), "binarizedImage.png");

                //моздаем объект - распознаватель
                MyTextRecognizer recognizer = new MyTextRecognizer();

                //разделение изображения на отдельные символы
                List <Symbol> symbols = MyTextRecognizer.GetSymbols(binarizedImage);

                //результат распознавания
                recognitionResultTextbox.Text = "";

                int count = 0;
                foreach (Symbol symbol in symbols)
                {
                    symbol.Print();
                    Console.WriteLine();

                    recognizer.RecognizeSymbol(symbol);

                    recognitionResultTextbox.Text = recognizer.;
                    count += 1;
                }
                //

                //recognitionResultTextbox.Text = MyTextRecognizer.RecognizeSymbol(MyTextRecognizer.CreateMatrix_16X16(binarizedImage));
            }
        }