导航:首页 > 编程语言 > php识别图片上的文字

php识别图片上的文字

发布时间:2022-07-15 06:50:49

php图形验证码识别

<?php
Header("Content-type: image/gif");
/*
* 初始化
*/
$border = 0; //是否要边框 1要:0不要
$how = 4; //验证码位数
$w = $how*15; //图片宽度
$h = 20; //图片高度
$fontsize = 5; //字体大小
$alpha = "abcdefghijkmnopqrstuvwxyz"; //验证码内容1:字母
$number = "023456789"; //验证码内容2:数字
$randcode = ""; //验证码字符串初始化
srand((double)microtime()*1000000); //初始化随机数种子

$im = ImageCreate($w, $h); //创建验证图片

/*
* 绘制基本框架
*/
$bgcolor = ImageColorAllocate($im, 255, 255, 255); //设置背景颜色
ImageFill($im, 0, 0, $bgcolor); //填充背景色
if($border)
{
$black = ImageColorAllocate($im, 0, 0, 0); //设置边框颜色
ImageRectangle($im, 0, 0, $w-1, $h-1, $black);//绘制边框
}

/*
* 逐位产生随机字符
*/
for($i=0; $i<$how; $i++)
{
$alpha_or_number = mt_rand(0, 1); //字母还是数字
$str = $alpha_or_number ? $alpha : $number;
$which = mt_rand(0, strlen($str)-1); //取哪个字符
$code = substr($str, $which, 1); //取字符
$j = !$i ? 4 : $j+15; //绘字符位置
$color3 = ImageColorAllocate($im, mt_rand(0,100), mt_rand(0,100), mt_rand(0,100)); //字符随即颜色
ImageChar($im, $fontsize, $j, 3, $code, $color3); //绘字符
$randcode .= $code; //逐位加入验证码字符串
}

/*
* 添加干扰
*/
for($i=0; $i<5; $i++)//绘背景干扰线
{
$color1 = ImageColorAllocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //干扰线颜色
ImageArc($im, mt_rand(-5,$w), mt_rand(-5,$h), mt_rand(20,300), mt_rand(20,200), 55, 44, $color1); //干扰线
}
for($i=0; $i<$how*40; $i++)//绘背景干扰点
{
$color2 = ImageColorAllocate($im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //干扰点颜色
ImageSetPixel($im, mt_rand(0,$w), mt_rand(0,$h), $color2); //干扰点
}

//把验证码字符串写入session
//session_start();
//$_SESSION['randcode'] = $randcode;
//把验证码字符写入COOKIE
setcookie( "randcode", $randcode, (time() + 3600*24*30), "/" );
/*绘图结束*/
Imagegif($im);
ImageDestroy($im);
/*绘图结束*/
?>

㈡ php提取pdf文本和图片有谁知道原理的

I 先来取模操作,实现步骤:
1.定位图片需要识别区域,从图片中取出此部分
2.将此部分的字模提取出来,记录到字模文件中,供以后匹配使用(为了得到完整的字模,所以需要多张图片进行测试)

II进行图片文字提取,实现步骤:

1.定位图片需要识别区域,从图片中取出此部分

2.将此部分的字模提取出来,与已经保存好的字模文件中数据对比,找出此字模对应的数据即可

㈢ PHP提取文字

这个有点像读取图片验证码
记得以前有人写过,不过只是针对某个特定网站特定图片样式写的。
大概原理:
图片的文字是无法直接读取,通过读取图片像素模糊判断是可以的。

先是读取图片,然后根据图片,调整一下对比度(网上有程序代码),让图片的文字更突出,背景更淡化。
然后嵌套循环,每行每列读取图片像素,找出规律对比一下。
判断图片字符。

ps:这个规律得有个好的算法和思路

比如文字“一”
读出的像素数组可能是在
a[5,4] a[6,4] a[7,4] a[8,4] a[9,4] a[10,4]
这些地方有颜色,而且颜色大概相同,
你再建个字符规律库,“一”的可能是 1,1,1,1,1,1,1
两个通过转换算法相互对比一下,如果大概符合,就可以判断是字符“一”。

误差会有的,就算官方的扫描程序也会认错字。

我只随便说一下,不一定正确。你可以在网站搜下相关东西。

㈣ 请问php有办法识别一张图片色块分布吗比如找出最适合添加文字的地方

理论上肯定是可以的。不过这应该是一个很高深的东西。所以,我只能给你我很粗浅的方法:

一:写个函数,这个函数的主要功能是找出一张图片上的主要颜色(代码在最后面)
二:把一张图片有GD库分成9份(3*3)或更多份,然后用第一个函数来取得每一份小图的主要颜色。
三:比对这几份小图的颜色,看哪一份的颜色是你需要的。

如果你原意,你也可以切很多份,比如10000份(100*100),然后计算这10000个颜色的中你需要的颜色的分布,找出你需要的区域。

$i = imagecreatefromjpeg("image.jpg");

for ($x=0;$x<imagesx($i);$x++) {
for ($y=0;$y<imagesy($i);$y++) {
$rgb = imagecolorat($i,$x,$y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> & 0xFF;
$b = $rgb & 0xFF;

$rTotal += $r;
$gTotal += $g;
$bTotal += $b;
$total++;
}
}

$rAverage = round($rTotal/$total);
$gAverage = round($gTotal/$total);
$bAverage = round($bTotal/$total);

㈤ PHP能够实现图片转文字的功能吗如果可以的话能告诉一下思路和需要用到的函数

估计不能
否则的话,验证码图片就是多次一举失去了意义

㈥ php 或 js 怎么在图片上添加文字和图片,

在图片上添加文件,可以的,不过需要借助ocr文字识别技术,方法如下:

打开ocr---高级识别---添加文件---识别;

然后呢,在右边直接打上文字,最后,可以保持为图片或者是word!

对上面的方法有所疑问的欢迎提问哦!!!

㈦ 如何用PHP识别一张图片的某一处位置(图片相当于背景)。然后在这个位置可以编辑文字,然后打印(PDF)

使用php
位置没有办法自动识别,但可以指定,例如可以指定x和y轴(20,25)

㈧ PHP如何将一个验证码图片内容读取出来,都是数字.

用图像识别技术。

㈨ 怎么用PHP解析出图片上的文字,然后和相应的数据对比,比如

PHP不适合做OCR图片识别,效率太低,也没有现成的类库~
建议改用其他语言来识别,PHP再去调用

阅读全文

与php识别图片上的文字相关的资料

热点内容
解压的玩具教程可爱版 浏览:364
哪个求职app比较靠谱 浏览:886
java的读法 浏览:59
nod32局域网服务器地址 浏览:1002
数码科技解压 浏览:235
新网的云服务器管理界面复杂吗 浏览:367
无人声解压强迫症视频 浏览:571
计算机编译运行 浏览:639
单片机嵌套 浏览:988
python字符串中符号 浏览:787
python正则表达式贪婪模式 浏览:649
爱国精神指的是什么app 浏览:408
寿司解压系列全集视频 浏览:913
物体三维重建算法 浏览:984
fuli直播app哪个好 浏览:918
租办公室用什么app 浏览:106
医师定期考核刷题app哪个好 浏览:338
导出dmp文件命令 浏览:288
手机百度网盘怎么解压密码文件 浏览:585
索引重新编译 浏览:606