Tesseract OCR для пустой страницы PHP

Это возвращает пустую страницу. Использование thiagoalessio Tesseract OCR для PHP.

Tesseract установлен на моей виртуальной машине Homestead:

vagrant@xxx-yyy-zzz:/usr/bin$ ./tesseract -v
tesseract 3.04.01

Пустая страница с:

use thiagoalessio\TesseractOCR\TesseractOCR;
    class OCRController extends Controller
    {
        public function analyze() {
            echo (new TesseractOCR(asset('storage/text.png')))
                ->executable('/usr/bin/tesseract')->run();
        }
    }

Отладка кода PHP:

use thiagoalessio\TesseractOCR\TesseractOCR;
class OCRController extends Controller
{
    public function analyze() {
        $tesseract = new TesseractOCR(asset('storage/text.png'));
        $tesseract->executable('/usr/bin/tesseract');
        var_dump($tesseract);
    }
}

Выход:

/home/vagrant/code/project-io/app/Http/Controllers/OCRController.php:13:
object(thiagoalessio\TesseractOCR\TesseractOCR)[444]
  private 'image' => string 'http://project.test/storage/text.png' (length=38)
  private 'command' => null
  private 'executable' => string '/usr/bin/tesseract' (length=18)
  private 'options' => 
    array (size=0)
      empty

Зная, что http://project.test/storage/text.png фактически возвращает изображение .

Тессеракт работает с командной строкой:

vagrant@xxx-yyy-zzz:~/code/project-io/public/storage$ tesseract text.png stdout
The quick brown fox
jumps over
the lazy dog.

person Patrick L.    schedule 01.03.2018    source источник
comment
Не хватает кода имо. Хотя надо что-то анализировать?   -  person Jonnix    schedule 01.03.2018
comment
Когда я var_dump (new TesseractOCR(asset('storage/text.png')))->executable('/usr/bin/tesseract')->run();, он возвращает "Call to a member function executable() on null", чего я не понимаю, потому что когда я var_dump() то, что находится перед исполняемым методом, он возвращает TesseractOCR объект   -  person Patrick L.    schedule 01.03.2018


Ответы (1)


Используя laravel и Tesseract OCR для PHP, кажется, что конструктор TesseractOCR, который получает путь к изображению, не принимает URL-адрес в качестве параметра. Поскольку asset() возвращает URL-адрес изображения, это не сработает. Это должен быть строгий путь.

$tesseract = new TesseractOCR(asset('storage/app/public/text.png')); // Incorrect

Должно быть:

$tesseract = new TesseractOCR(storage_path('app/public/text.png')); // Correct
person Patrick L.    schedule 01.03.2018