Esempio 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"));
                }
            }
        }
Esempio n. 2
0
        //конструктор
        public MyTextRecognizer()
        {
            recognitionResult = "";

            string[] directories = Directory.GetDirectories(etalonArraysTxtPath);

            etalonSymbols = new List <Symbol>();

            foreach (string directory in directories)
            {
                string[] files = Directory.GetFiles(directory);

                foreach (string filePath in files)
                {
                    byte[,] array = MyArraySerializer.DeserializeArray(new StreamReader(filePath));

                    etalonSymbols.Add(new Symbol(array, Path.GetFileName(filePath).Replace(".txt", "")));

                    Console.WriteLine(filePath);
                }
            }

            ReadRules(rulesDirectoryPath);
        }