㈠ 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再去調用