php 图片 字母识别,PHP图片识别成文字

http://apistore.baidu.com/apiworks/servicedetail/146.html

分类: php2011-07-03 02:02 3576人阅读 评论(2) 收藏 举报

phpfunction电话pathcnull/**

* 电话号码识别.

* @author by zsc for 2010.03.24*/

classgjPhone{protected $imgPath;//图片路径

protected $imgSize;//图片大小

protected $hecData;//分离后数组

protected $horData;//横向整理的数据

protected $verData;//纵向整理的数据

function __construct($path){

$this->imgPath =$path;

}/**

* 颜色分离转换...

*

* @param unknown_type $path

* @return unknown*/

publicfunction getHec()

{

$size= getimagesize($this->imgPath);

$res= imagecreatefrompng($this->imgPath);for($i=0; $i < $size[1]; ++$i)

{for($j=0; $j < $size[0]; ++$j)

{

$rgb=imagecolorat($res,$j,$i);

$rgbarray=imagecolorsforindex($res, $rgb);if($rgbarray[‘red‘] < 125 || $rgbarray[‘green‘]<125

|| $rgbarray[‘blue‘] < 125)

{

$data[$i][$j]=1;

}else{

$data[$i][$j]=0;

}

}

}

$this->imgSize =$size;

$this->hecData =$data;

}/**

* 颜色分离后的数据横向整理...

*

* @return unknown*/

publicfunction magHorData()

{

$data= $this->hecData;

$size= $this->imgSize;

$z= 0;for($i=0; $i

{if(in_array(‘1‘,$data[$i])){

$z++;for($j=0; $j

{if($data[$i][$j] == ‘1‘){

$newdata[$z][$j]= 1;

}else{

$newdata[$z][$j]= 0;

}

}

}

}return $this->horData =$newdata;

}/**

* 整理纵向数据...

*

* @return unknown*/

publicfunction magVerData($newdata){for ($i=0;$i<132;++$i){for($j=1;$j<13;++$j){

$ndata[$i][$j]=$newdata[$j][$i];

}

}

$sum=count($ndata);

$c= 0;for ($a=0;$a

$value=$ndata[$a];if(in_array(1,$value)){

$ndatas[$c]=$value;

$c++;

}elseif(is_array($ndatas)){

$b= $c-1;if(in_array(1,$ndatas[$b])){

$ndatas[$c]=$value;

$c++;

}

}

}return $this->verData =$ndatas;

}/**

* 显示电话号码...

*

* @return unknown*/

publicfunction showPhone($ndatas){

$phone= null;

$d= 0;foreach ($ndatas as $key =>$val){if(in_array(1,$val)){foreach ($val as $k =>$v){

$ndArr[$d].=$v;

}

}if(!in_array(1,$val)){

$d++;

}

}foreach ($ndArr as $key01 =>$val01){

$phone .= $this->initData($val01);

}return$phone;

}/**

* 分离显示...

*

* @param unknown_type $dataArr*/function drawWH($dataArr){if(is_array($dataArr)){foreach ($dataArr as $key =>$val){foreach ($val as $k =>$v){if($v == 0){

$c .= "".$v."";

}else{

$c .=$v;

}

}

$c .= "
";

}

}

echo $c;

}/**

* 初始数据...

*

* @param unknown_type $numStr

* @return unknown*/

publicfunction initData($numStr){

$result= null;

$data=array(0=>‘000011111000001111111110011000000011110000000001110000000001110000000001110000000001011000000011011100000111000111111100000001110000‘,1=>‘011000000000011000000000111111111111111111111111‘,2=>‘001000000011011000000111110000001101110000011001110000011001110000110001111001100001011111100001000110000001‘,3=>‘001000000010011000000011110000000001110000000001110000110001110000110001011001110011011111011111000110001100‘,4=>‘000000001100000000111100000001111100000011101100000111001100001100001100011000001100111111111111111111111111000000001100000000000100‘,5=>‘111111000001111111000001110001000001110001000001110001100001110001100001110000110011110000111111000000001100‘,6=>‘000011111000001111111110011000110011110001100001110001100001110001100001110001100001010001110011010000111111000000001100‘,7=>‘110000000000110000000111110000111111110001110000110111000000111100000000111000000000111000000000‘,8=>‘000100011110011111111111110011100001110001100001110001100001110001100001110011100001011111111111000100011110‘,9=>‘001111000000011111100001110000110001110000110001110000110001110000110001011000100001011111100111000111111110000001110000‘,

);foreach ($data as $key =>$val){

similar_text($numStr,$val,$pre);if($pre>95){//相似度95%以上

$result =$key;break;

}

}return$result;

}

}

$imgPath= "http://bj.ganji.com/tel/5463013757650d6c5e31093e563c51315b6c5c6c5237.png";

$gjPhone= newgjPhone($imgPath);//进行颜色分离

$gjPhone->getHec();//画出横向数据

$horData = $gjPhone->magHorData();

echo"===============横向数据==============
";

$gjPhone->drawWH($horData);//画出纵向数据

$verData = $gjPhone->magVerData($horData);

echo"
===============纵向数据==============< br/>
";

$gjPhone->drawWH($verData);//输出电话

$phone = $gjPhone->showPhone($verData);

echo"
===============电话==============
".$phone;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值