PHP图片识别成文字代码
PHP图片识别成文字代码
来源:网络
更新时间:不详
PHP图片识别成文字代码
<?php
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;最新更新
更多>>- B103三菱PLC通信基础及应用12-14
- Windows游戏编程大师技巧第二版
- Photoshop CS6完全自学教程(中文版)
- [从零开始学电路基础].刘建清.扫描版
- [从零开始学电路仿真Multisim与电路设计Protel技
- [从零开始学电气控制与PLC技术].刘建清.扫描版(1)
- [从零开始学电动机控制与维修技术].李建清.扫描版
- [从零开始学数字电子技术].李建清.扫描版
- [从零开始学CPLD和Verilog.HDL编程技术].李建清.
- 山东大学欧姆龙plc视频教程1-20
- 艺用人体造型图集视觉艺术的人体模特
- [说服力:工作型PPT该这样做] 张志.刘俊.包翔
- 《计算机组成原理》2018秋季B卷V1.0标准答案脱敏
- 《计算机组成原理》2017秋季A卷V1.1标准答案脱敏
- 2020秋季计算机组成原理试卷B(正题)答案脱敏
- 2019秋季计算机组成原理试卷A答案脱敏
- 工程设计题
- 教师使用--计算机组成原理实验报告模板.docx
- 教师使用--计算机组成原理实验常用问题.pdf
- 教师使用__头歌平台建立翻转课堂
- 简明电路分析基础李瀚逊
- 电路分析基础第四版课后习题答案
- 电路分析基础 (下册) (第4版)
- 电路分析基础 (上册) (第4版)
- ScarboroughFair斯卡布罗集市吉他谱
- MFC Windows程序设计(第2版)(2)
- JavaScript语言精粹(修订版)
- 《低压电工实用技术问答》(2)
- 《鸟哥的Linux私房菜》
- 计算机程序设计艺术 ( 第四卷)
- 计算机程序设计艺术(第二卷)
- 计算机程序设计艺术(第三卷)
- 计算机程序设计艺术(第一卷)
- 美国纽约摄影学院摄影教材(下册)
- 美国纽约摄影学院摄影教材(上册)
- Java核心知识
- Java核心基础
- Java 基础面试题总结
- Java 基础核心总结
- 第一行代码——Android
- Android第一行代码源码
- 火星时代-3ds Max&Sketchup室外建模火星课堂
- 火星时代-3ds Max&Sketchup室外建模火星课堂CD4
- 火星时代-3ds Max&Sketchup室外建模火星课堂CD3
- 火星时代-3ds Max&Sketchup室外建模火星课堂CD2
- 火星时代-3ds Max&Sketchup室外建模火星课堂CD1
- php和mysql web开发(第5版)完整源码
- PHP和MySQL WEb 5th
- Linux_UNIX系统编程手册(下)
- Linux_UNIX系统编程手册(上)
声明:本网站所资源均通过互联网收录,并提供大家免费学习使用,如果本站有侵犯权利人版权内容的请向本站投诉。
投诉邮箱:577982958@qq.com 一经核实,本站将立即删除相关收录作品。
© 2020 - 2026 www.JarlWeiJing.com 版权所有
