為了程式能自動的辨識輸入驗證碼,查詢到一個線上可以辨識驗證碼的網站
其實線上能辨識OCR的網站有很多,像是google cloud也有提供這個功能,只是google是前一千筆免費,後面每一千筆要1塊多美金的樣子。https://cloud.google.com/vision
還有另一種是本地的Tesseract-OCR 這個也不錯,但是需要在你電腦安裝軟體,優點是可以離線辨識
而我這次是採用https://ocr.space/ 這個
他目前是註冊的話(不用信用卡) 可以每個月有25000次的免費(但是每天最多500次)
這邊有價格跟他的api 裡面也可以選擇辨識的語言(預設英文)
https://ocr.space/OCRAPI
<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: *");
header("Access-Control-Allow-Headers: Origin, Methods, Content-Type");
$api_key="davidou_key"; //這邊輸入你的api_key
if(@$_POST['url']!=""){
//這邊是透過http get的方式取得
$imgocr_url=$_POST['url']; //"http://211.75.72.240/OCR-api/Verification%20(2).gif";
$url="https://api.ocr.space/parse/imageurl?apikey=".$api_key."&url=".$imgocr_url;
$data=file_get_contents($url);
}elseif($_POST['base64']!=""){
//這邊是透過http post方式取得 base64需要用post方式才可以
$base64Image=$_POST['base64'];
$url="https://api.ocr.space/parse/image";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array("base64Image"=>$base64Image, "apikey"=>$api_key)));
$data = curl_exec($ch);
curl_close($ch);
}
$out=json_decode($data);
print_r( $out->ParsedResults[0]->ParsedText);
?>
上面就是範例程式碼,或是直接參考官網的程式碼也很容易。