php

PHP 線上OCR

為了程式能自動的辨識輸入驗證碼,查詢到一個線上可以辨識驗證碼的網站

其實線上能辨識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);


?>

上面就是範例程式碼,或是直接參考官網的程式碼也很容易。

Be the First to comment.

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

(若看不到驗證碼,請重新整理網頁。)