通过Tesseract-OCR可以简单的图文识别,要想解析简单的验证友不再是什么难的技术问题,以下分享在Centos上安装OCR的步骤及PHP调用的OCR的函数。
一、Linux OCR 环境搭建脚本
yum install -y libtool libjpeg-devel libpng-devel libtiff-devel zlib-devel giflib-devel
wget http://www.leptonica.com/source/leptonica-1.71.tar.gz
tar zxvf leptonica-1.71.tar.gz
cd leptonica-1.71
./configure --with-zlib --with-libpng --with-jpeg --with-giflib --with-libtiff
make && make install
cd ..
wget http://static.cnsrn.com/tesseract-ocr-3.02.02.tar.gz
# 以下是下载语言包
wget http://static.cnsrn.com/tesseract-ocr-3.02.eng.tar.gz
wget http://static.cnsrn.com/tesseract-ocr-3.02.chi_sim.tar.gz
tar zxvf tesseract-ocr-3.02.02.tar.gz
tar zxvf tesseract-ocr-3.02.eng.tar.gz
tar zxvf tesseract-ocr-3.02.chi_sim.tar.gz
cd tesseract-ocr
./configure
make && make install
rm -rf /usr/local/share/tessdata/;
cp -rf ./tessdata /usr/local/share/
二、命令行测试
tesseract phototest.tif output
三、PHP外部调用函数
/**
* 异步执行CMD命令
*
* @param type $cmd Linux命令
* @return type
*/
function call_cmd($cmd) {
$pipes = '';
$_=("^"^".").("^"^ ",").("@" ^ "/").("#"^"@")
.("?"^"`").("@"^"/").("^"^".").(">"^"[").("@"^".");
$__= ("^"^".").("^"^",").("@"^"/").("#"^"@")
.("?"^"`"). ("#"^"@").(","^"@").("@"^"/").(","^"_").(">" ^ "[");
return $__($_("{$cmd} &",array(), $pipes));
}
/**
* 解析图文
*
* @param type $imagefile 图片路径
* @param type $output 识别内容输出路径
* @param type $lang 识别语言 chi_sim | eng
* @return type
*/
function read_img($imagefile, $output, $lang = 'eng') {
$cmd = "tesseract {$imagefile} {$output} -l {$lang}”;
echo "cli: $cmd \n";
return call_cmd($cmd);
}
//# 测试代码
$imagefile = 'test.tif';
$output = 'test';
read_img($imagefile,$output,'eng’);
//# 测试结果输出在 test.txt