它正在返回一个空白页面。使用thiagoalessio Tesseract OCR for PHP。
Tesseract安装在我的Homestead VM上:
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实际上正在返回图像。
Tesseract正在使用命令行:
vagrant@xxx-yyy-zzz:~/code/project-io/public/storage$ tesseract text.png stdout
The quick brown fox
jumps over
the lazy dog.
使用laravel和Tesseract OCR for 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