OCR (光学文字認識) の Baidu の定義では、電子デバイス (スキャナーやデジタル カメラなど) が紙に印刷された文字をチェックし、明暗のパターンを検出して文字の形状を判断し、文字認識方法を使用して文字を認識することを指します。形状をコンピュータテキストに変換するプロセス。つまり、印刷された文字の場合、紙の文書内のテキストが光学的に白黒のドットマトリクス画像ファイルに変換され、画像内のテキストが認識ソフトウェアによってテキスト形式に変換されます。ワープロソフトを使ってさらに編集・加工する技術。
エンジニアとして、実際のプログラミングでは、画像内のテキストを表示する必要がある場合がありますが、これには OCR 技術の使用が必要です。 PHP の開発のため、PHP を優先して PHP の OCR 拡張機能を見つけてテストしましたが、利用できないことがわかりました (アドレス: http://sourceforge.net/projects/phpocr.berlios)。 私もインターネットで友人のデモを何度も見ました。基本原理は、画像を 0 と 1 の行列に分解し、その特徴に応じて対応する文字列に変換することです。複数のテストを行うことは現実的ではありません。その後、PHP は OCR に使用されることはほとんどなく、このアルゴリズムには高い効率が必要であるため、適切ではないと言っているのを目にしました。 CやMATLABなどのOCRアルゴリズムを試すことができます。 Matlab では、OCR などの部分的なアルゴリズムを実行する人がたくさんいます。
私には才能も知識もほとんどなく、Cを知りません。 Baidu に OCR API が提供されていることを偶然発見しました: http://apistore.baidu.com/apiworks/servicedetail/146.html。
楽しみのために書きました:
<?php header("Content-type: text/html; charset=utf-8"); function curl($img){ $ch = curl_init(); $url ='http://apis.baidu.com/apistore/idlocr/ocr';//百度ocr api $header = array( 'Content-Type:application/x-www-form-urlencoded', 'apikey:69c2ace1ef297ce88869f0751cb1b618', ); $data_temp = file_get_contents($img); $data_temp = urlencode(base64_encode($data_temp)); //封装必要参数 $data="fromdevice=pc&clientip=127.0.0.1&detecttype=LocateRecognize&languagetype=CHN_ENG&imagetype=1&image=".$data_temp; curl_setopt($ch, CURLOPT_HTTPHEADER , $header);// 添加apikey到header curl_setopt($ch, CURLOPT_POST,1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data);// 添加参数 curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch , CURLOPT_URL , $url);// 执行HTTP请求 $res = curl_exec($ch); if($res === FALSE){ echo "cURL Error: ". curl_error($ch); } curl_close($ch); $temp_var = json_decode($res,true); return $temp_var; } $wordArr = curl('4.jpg'); if($wordArr['errNum']==0){ var_dump($wordArr); }else{ echo "识别出错:".$wordArr["errMsg"]; }