Использование Тессеракта в C#C#

Место общения программистов C#
Anonymous
Использование Тессеракта в C#

Сообщение Anonymous »

Я пытаюсь использовать тессеракт в проекте, написанном на C#. У меня проблема с чтением текста из части изображения. Я пытаюсь найти эти 4 знака (в примере 0000) и число после «е». Кроме того, в некоторых примерах он работает отлично, а в некоторых других выводится сообщение «Пустая страница!!!». Разница между примерами заключается в цвете фона. Что мне следует сделать, чтобы минимизировать вероятность ошибки?
изображение, на котором чтение текста с изображения работает
[здесь не работает]
( https://i.sstatic.net/gwYE2oBI.jpg)
Часть кода:

Код: Выделить всё

public static class Sign
{
public static void Check()
{
string imagePath = "C:/Users/User/Documents/... .bmp";
Mat imageSign = new Mat(imagePath);

int h = imageSign.Rows;
int w = imageSign.Cols;
int point1 = (int)(0.01 * w);
int point2 = (int)(0.6 * h);
int point3 = (int)(0.3 * w);
int point4 = (int)(0.9 * h);
OpenCvSharp.Point start_point = new OpenCvSharp.Point(point1, point2);
OpenCvSharp.Point end_point = new OpenCvSharp.Point(point3, point4);
imageSign = new Mat(imageSign, new OpenCvSharp.Rect(point1, point2, point3 - point1, point4 - point2));

imageSign.SaveImage(imagePath);
var pixFromFilee = Pix.LoadFromFile(imagePath);
string customConfig = "--psm 13";
using (var engined = new TesseractEngine(@"C:\Program Files\Tesseract-OCR\tessdata", "eng", EngineMode.Default))
{
engined.SetVariable("tessedit_char_whitelist", "0123456789");
using (var pagee = engined.Process(pixFromFilee, customConfig))
{
string text = page.GetText();
Console.Write(text);

string[] lines = text.Split('\n');
bool linijka = false;

foreach (string line in lines)
{
if (line.Length == 4 || line.Length == 5)
{
Console.WriteLine(" e5: ");
Console.WriteLine(line);
linijka = true;
}
if (line.Length == 1)
{
Console.WriteLine("e_:");
Console.WriteLine(line);
}
}

if (!linijka)
{
Console.WriteLine("not found e5");
}
Cv2.ImShow("final", imageSign);
Cv2.WaitKey(0);
}
}
Я пробовал обрезать изображение и по какой-то причине делать его больше или меньше, чем сейчас, что отрицательно сказывается на результатах. Кроме того, я попробовал некоторые другие конфигурации tesseract psm.

Подробнее здесь: https://stackoverflow.com/questions/788 ... in-c-sharp

Вернуться в «C#»