Использование TesseractOCR в Laravel

Я пробую использовать TesseractOCR на новом сайте.

Я установил новую версию Laravel (5.2.4), установил Tesseract на свой сервер (Debian Jessie) и установил оболочку PHP для Tesseract; тессеракт-OCr-для-PHP.

Я следовал всем инструкциям по установке и установил пакет в приложение.

В моем routes.php файл у меня был:

Route::get('/test', function () {
$tesseract = new TesseractOCR(asset('images/myimage.jpg'));
echo $tesseract->recognize();
});

Где изображение myimage.jpg существует в папке с именем images внутри public папка.

Когда я перехожу к example.com/test Я получил:

ErrorException в строке TesseractOCR.php 235:
file_get_contents (/tmp/75176598.txt): не удалось открыть поток: нет такого
файл или каталог

Согласно readme.md Вы можете решить эту проблему с помощью $tesseract->setTempDir('./my-temp-dir');,

Как таковой, я попытался изменить свой routes.php подать в:

Route::get('/test', function () {
$tesseract = new TesseractOCR(asset('images/myimage.jpg'));
$tesseract->setTempDir('/var/www/tesseract/public/images');
echo $tesseract->recognize();
});

Однако это просто дает ту же ошибку с другим путем файла:

ErrorException в строке TesseractOCR.php 235:
file_get_contents (/var/www/tesseract/public/images/1770521095.txt):
не удалось открыть поток: нет такого файла или каталога

Как мне решить эту ошибку?

0

Решение

В конце концов я понял, что вы не можете предоставить TesseractOCR HTML-ссылку на изображение, это должен быть внутренний путь к файлу.

Как asset() возвращает URL, я просто заменил это на public_path() и это работало просто отлично.

Там никогда не было ничего плохого с разрешениями или фактическим пакетом, просто вам нужно указать путь к файлу, а не URL.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]