//МЕТОДЫ, ИСПОЛЬЗУЕМЫЕ ДЛЯ СОЗДАНИЯ ЭТАЛОНОВ //---------------------------------------------------------------- //получить 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")); } } }
//конструктор 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); }