PHP图像识别 php-tesseract

在做一些网络爬虫工具的时候,经常需要把图片信息转化成文本数据(比如电商网站相互之间比价,而价格往往是图片格式)。网上关于PHP图像识别的文章不少,不过质量都不怎么样,好的工具包更是寥寥无几。好不容易找到一个优秀的PHP图片识别扩展,和大家分享一下。

首先安装依赖程序:

sudo apt-get install python-distutils-extra tesseract-ocr tesseract-ocr-eng libtesseract-dev libleptonica-dev php5-dev swig libcv-dev build-essential subversion

编译安装 php-tesseract:

svn checkout http://php-tesseract.googlecode.com/svn/trunk/ php-tesseract
cd php-tesseract
./configure --prefix=/usr
make
sudo make install
make test

这里有一个官方提供的例子:

wget http://php-tesseract.googlecode.com/files/tesseract.php
wget http://php-tesseract.googlecode.com/files/eurotext.jpg
wget http://php-tesseract.googlecode.com/files/test.php
php test.php

开发时,只要把tesseract.php包含到你的代码中就可以使用了。

  • 官方提示:需要把 php.ini 中 enable_dl 设为 On

Example:

include 'tesseract.php';
$api= new TessBaseAPI;
$api->Init(".","eng",$mode_or_oem=OEM_DEFAULT);
$api->SetPageSegMode(PSM_AUTO);

$mImgFile = "eurotext.jpg";
$handle=fopen($mImgFile,"rb");
$mBuffer=fread($handle,filesize($mImgFile));
print strlen($mBuffer);
$result=ProcessPagesBuffer($mBuffer,strlen($mBuffer),$api);
print "result(ProcessPagesBuffer)=";
print $result;
$result = ProcessPagesFileStream($mImgFile,$api);
print "result(ProcessPagesFileStream)=";
print $result;
Show Comments