Tesseract и многопоток

Evgeny76

Client
Регистрация
11.09.2015
Сообщения
192
Благодарностей
85
Баллы
28
Всем привет!
Помогите решить проблемку. Есть шаблон, разгадывает капчу с помощью tesseract вот таким кодом:

using (var api = OcrApi.Create())
{
api.Init(Languages.English); // язык распознавания
string plainText = api.GetTextFromImage(@"C:\Zenno\Мои проекты\captcha\captcha.png"); // путь к картинке
return plainText; // возвращаем ответ переменой екшена
}
return "bad";
В один поток всё работает отлично, проблем нет. Но когда запускаю в несколько потоков, то начинаются проблемы так как картинка имеет одно и то же имя и путь для всех потоков. Сохранять картинку в каждом потоке с новым именем не проблема, а вот как в коде tesseract прописать каждому потоку свой путь к картинке?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 605
Благодарностей
4 596
Баллы
113
как сохраняешь так и прописывай. Если в этом же шаблоне сохраняешь картинку, то путь сохраненной картинки в переменную, а эту переменную в код тессеракта вместо статического пути
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 039
Баллы
113
я не умничаю нол иногда надо и свои мозги подключить, а вообще в жизни у меня тоже такое и не пойму почему, прихожу в магазин и говорю булку белого, веришь или нет но мне всегда дают белый а в уме я хочу чёрный, продавщице говорю чё ты мне фуфло суёшь я чёрный хочу, что сказали то и дали

ответ, что прописал то тебе программа и выполняет
 
  • Спасибо
Реакции: masterLomaster

Evgeny76

Client
Регистрация
11.09.2015
Сообщения
192
Благодарностей
85
Баллы
28
doc , это понятно. Но он не принимает путь. Я делал вот так:

string sss = project.Variables["pic"].Value;
using (var api = OcrApi.Create())
{
api.Init(Languages.English); // язык распознавания
api.SetVariable("tessedit_char_whitelist", "=+0123456789");
string plainText = api.GetTextFromImage(@"sss"); // путь к картинке
return plainText; // возвращаем ответ переменой екшена
}
return "bad";
В логе: Выполнение действия CSharp OwnCode sss
Сбойное действие



Там перед путём ещё знак @ стоИт и путь огражден кавычками. Пробовал в переменную загнать полностью то что в скобках: @"C:\Zenno\Мои проекты\captcha\captcha.png" тоже не работает.
В логе: Выполнение действия CSharp OwnCode Путь содержит недопустимые знаки
Сбойное действие


Мне не понятно, как в эту строку: string plainText = api.GetTextFromImage(@"sss"); // путь к картинке
вставить свою переменную
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 605
Благодарностей
4 596
Баллы
113
string plainText = api.GetTextFromImage(sss);
 
  • Спасибо
Реакции: Evgeny76

Evgeny76

Client
Регистрация
11.09.2015
Сообщения
192
Благодарностей
85
Баллы
28
Спасибо, doc, всё получилось.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)