Текст с помощью Tesseract.Net SDK

dihard

Client
Регистрация
08.11.2019
Сообщения
241
Благодарностей
40
Баллы
28
Добрый день, подскажите, пытаюсь взять текст из картинки с помощью этой Tesseract.Net SDK.
Так как картинки генерирует php файл, прямого пути вставить в код не получается.
Пробывал разложить на base64 и вставить в код , но пишет максимум 260 символов

C#:
using (
 var api = OcrApi.Create())
 {
 api.Init(Languages.English); // язык распознавания 
 string plainText = api.GetTextFromImage("URL"); // путь к картинке 
 return plainText; // возвращаем ответ переменой екшена
 } 
  return "bad";
Есть какие способы выхода из этой ситуации?
 

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
823
Баллы
93
В лог что пишет?
Путь к картинке точно правильный?
Папка tessdata где находятся файлы нейросетки для распознавания eng где находится? И вообще она скачивалась?

Если путь к tessdata не указан, то эта папка должна быть в основой папке зенки \ZennoLab\RU\ZennoPoster Pro\версия ZP\Progs\
Иначе надо прописывать путь до нее в методе Init()
api.Init(Languages.English, "Путь до tessdata");

51782
 
  • Спасибо
Реакции: dihard

dihard

Client
Регистрация
08.11.2019
Сообщения
241
Благодарностей
40
Баллы
28
В лог что пишет?
Путь к картинке точно правильный?
Папка tessdata где находятся файлы нейросетки для распознавания eng где находится? И вообще она скачивалась?

Если путь к tessdata не указан, то эта папка должна быть в основой папке зенки \ZennoLab\RU\ZennoPoster Pro\версия ZP\Progs\
Иначе надо прописывать путь до нее в методе Init()
api.Init(Languages.English, "Путь до tessdata");

Посмотреть вложение 51782
В путях все правильно, он не может понять что эта картинка , например файл generate.php выдает картинки, и расщирение php он не читает конечно и пишет ошибку, а в base64 слишком длинный путь файла(боле 260 символов)
 

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
823
Баллы
93
и расщирение php он не читает конечно и пишет ошибку
Так все правильно что ошибка.
Если пихать в метод не то что требуется, то какого результата можно ожидать?
Ни одна из перегрузок GetTextFromImage() не принимает на вход url. Там 14 перегрузок, и это или путь к картинке, или сама картинка.

а в base64 слишком длинный путь файла
base64 это не путь, а формат представления данных, опять же понятно что будет - ошибка.

Одна из перегрузок GetTextFromImage() принимает на вход Bitmap. Соответственно надо картинку из base64 перевести в Bitmap.
C#:
using (var api = OcrApi.Create())
{
    var bitmap = (Bitmap)Image.FromStream(new MemoryStream(Convert.FromBase64String("тут картинка в base64")));
    api.Init(Languages.English);
    string plainText = api.GetTextFromImage(bitmap);
}
 
  • Спасибо
Реакции: dihard

impul5e

Client
Регистрация
15.08.2017
Сообщения
198
Благодарностей
40
Баллы
28
а если попробовать из base64 конвертировать в md5?
 

Evgeny76

Client
Регистрация
11.09.2015
Сообщения
192
Благодарностей
85
Баллы
28

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