Текст на картинке .bmp - перевести в string
Задача: RU Текст на картинке .bmp перевести в string
Белый фон - тёмный текст
Какую библиотеку на C# можно использовать для этого ?
Ответы (2 шт):
Автор решения: Blackmeser
→ Ссылка
Любую OCR. Есть пример с Emgu.CV.OCR/Tesseract Взято отсюда: https://csharp.hotexamples.com/ru/examples/Emgu.CV.OCR/Tesseract/GetCharacters/php-tesseract-getcharacters-method-examples.html
static void Main(string[] args)
{
var files = Directory.GetFiles(@"d:\raw\classified\");
//var img = new Image<Rgb, byte>(files[0]);
var img = new Image<Emgu.CV.Structure.Gray, byte>(@"d:\raw\classified\test.jpg");
var _ocr = new Tesseract(@"D:\", "eng", OcrEngineMode.TesseractCubeCombined);
_ocr.SetVariable("tessedit_char_whitelist", "1234567890"); //походу это какой-то фильтр и он может быть необязательным
_ocr.Recognize(img);
var result = _ocr.GetCharacters();
}
Автор решения: Vipz
→ Ссылка
Ниже ссылка - надо скачать файл rus.traineddata - я разместил на диске C:\
https://github.com/tesseract-ocr/tessdata/blob/master/rus.traineddata
Ну и вот код:
private string ImgToText(string pathImg)
{
var img = new Image<Bgr, byte>(pathImg);
Tesseract tesseract = new Tesseract(@"C:\", "rus", OcrEngineMode.TesseractLstmCombined);
tesseract.SetImage(img);
tesseract.Recognize();
var result = tesseract.GetUTF8Text();
tesseract.Dispose();
return result;
}
