PHP图片识别成文字
2023-09-14 08:59:34 时间
http://apistore.baidu.com/apiworks/servicedetail/146.html 分类: php2011-07-03 02:02 3576人阅读 评论(2) 收藏 举报 phpfunction电话pathcnull /** * 电话号码识别. * @author by zsc for 2010.03.24 */ class gjPhone{ protected $imgPath;//图片路径 protected $imgSize;//图片大小 protected $hecData;//分离后数组 protected $horData;//横向整理的数据 protected $verData;//纵向整理的数据 function __construct($path){ $this->imgPath = $path; } /** * 颜色分离转换... * * @param unknown_type $path * @return unknown */ public function 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 */ public function magHorData() { $data = $this->hecData; $size = $this->imgSize; $z = 0; for($i=0; $i<$size[1]; ++$i) { if(in_array('1',$data[$i])){ $z++; for($j=0; $j<$size[0]; ++$j) { if($data[$i][$j] == '1'){ $newdata[$z][$j] = 1; }else{ $newdata[$z][$j] = 0; } } } } return $this->horData = $newdata; } /** * 整理纵向数据... * * @return unknown */ public function 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<$sum;$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 */ public function 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 .= "<font color='#FFFFFF'>".$v."</font>"; }else{ $c .= $v; } } $c .= "<br/>"; } } echo $c; } /** * 初始数据... * * @param unknown_type $numStr * @return unknown */ public function 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 = new gjPhone($imgPath); //进行颜色分离 $gjPhone->getHec(); //画出横向数据 $horData = $gjPhone->magHorData(); echo "===============横向数据==============<br/><br/><br/>"; $gjPhone->drawWH($horData); // 画出纵向数据 $verData = $gjPhone->magVerData($horData); echo "<br/><br/><br/>===============纵向数据==============< br/><br/><br/>"; $gjPhone->drawWH($verData); // 输出电话 $phone = $gjPhone->showPhone($verData); echo "<br/><br/><br/>===============电话==============<br /><br/><br/>".$phone;
相关文章
- php和asp网络验证码,Verifycode 1个简单的网页图片验证码的示例程序,基本上现有 字和字母都可以识别。 WEB(ASP,PHP,…) 238万源代码下载- www.pudn.com…
- PHP 浏览器缓存_php缓存引擎
- curl_init php_宝塔php开启curl扩展
- PHP- 复合数据类型-数组的使用
- PHP- 运算符-PHP 的算术运算符
- PHP安装MySQL模块:简单易行(php添加mysql模块)
- PHP与MySQL融合,尽享轻松开发(php与mysql整合)
- PHP实现MySQL分页查询功能(php分页查询mysql)
- PHP与MySQL的紧密链接(php与mysql的关系)
- 构建 php MySQL 后台管理系统(phpmysql管理)
- Linux系统下PHP安装Redis扩展的步骤(php安装redis)
- 快速开发一个PHP电影爬虫
- PHP应该在哪个Linux操作系统上运行?(php用什么linux)
- 使用PHP轻松循环MySQL,让数据处理变得更容易(php循环mysql)
- 使用PHP实现Redis队列(redis队列php)
- PHP无法连接MSSQL服务器(php 读不到mssql)
- 服务器深入比较:PHP数据库与MSSQL服务器(php数据库和mssql)
- PHP玩转MSSQL:从入门到精通(php关于mssql操作)
- PHP图片上传至MySQL:实现快速可靠的数据存储(php图片上传mysql)
- 分页详解从此分页无忧(PHP+mysql)
- php获取mysql版本的几种方法小结
- php,ajax实现分页
- 如何在PHP程序中防止盗链
- PHP文件类型判断代码
- PHP中的MYSQL常用函数(php下操作数据库必备)
- PHP和Mysqlweb应用开发核心技术第1部分Php基础-1开始了解php
- 新手学习PHP的一些基础知识分享
- PHP正则表达式特殊字符[:alnum:][:alpha:]等
- 解析php中call_user_func_array的作用
- PHP关于IE下的iframe跨域导致session丢失问题解决方法
- MongoDB在PHP中的常用操作小结
- PHP图像处理之imagecreate、imagedestroy函数介绍
- PHP结合JQueryJcrop实现图片裁切实例详解
- php中$_POST与php://input的区别实例分析