PHP implementiert die OCR-Texterkennung

WBOY
Freigeben: 2016-07-30 13:29:32
Original
4465 Leute haben es durchsucht

Mehr: http://www.webyang.net/Html/web/article_161.html

Die Baidu-Definition von OCR (Optical Character Recognition, optische Zeichenerkennung) bezieht sich auf elektronische Geräte (z. B. Scanner). ) oder Digitalkamera), um auf Papier gedruckte Zeichen zu untersuchen, ihre Form durch Erkennung dunkler und heller Muster zu bestimmen und dann Zeichenerkennungsmethoden zu verwenden, um die Form in Computertext zu übersetzen, d. h. für gedruckte Zeichen werden optische Methoden zur A-Technologie verwendet Es wandelt den Text im Dokument in eine Schwarz-Weiß-Punktmatrix-Bilddatei um und wandelt den Text im Bild mithilfe von Erkennungssoftware in ein Textformat zur weiteren Bearbeitung und Verarbeitung durch Textverarbeitungssoftware um.

Als Ingenieur müssen Sie bei der eigentlichen Programmierung möglicherweise den Text im Bild anzeigen, was den Einsatz der OCR-Technologie erfordert. Aufgrund der PHP-Entwicklung habe ich PHP Vorrang eingeräumt. Ich habe die OCR-Erweiterung von PHP gefunden und getestet, aber festgestellt, dass sie nicht verfügbar ist (Adresse: http://sourceforge.net/projects/phpocr.berlios)? Ich habe mir auch viele Demos von Freunden im Internet angesehen. Das Grundprinzip besteht darin, das Bild in eine Matrix aus 0 und 1 zu zerlegen und es dann entsprechend den Merkmalen in die entsprechende Zeichenfolge umzuwandeln. Es ist nicht möglich, mehrere zu testen. Dann habe ich gesehen, dass PHP selten für OCR verwendet wird und nicht geeignet ist. Die Spracheffizienz ist zu gering. Sie können C, MATLAB ausprobieren und andere OCR-Algorithmen. Es gibt viele Leute, die in Matlab arbeiten und Teilalgorithmen wie OCR spielen.

Ich habe keine andere Wahl, als wenig Talent und wenig Wissen zu haben, und ich kenne C nicht. Ich habe zufällig entdeckt, dass Baidu über eine OCR-API verfügt: http://apistore.baidu.com/apiworks/servicedetail/146.html.

Zum Spaß geschrieben:

<ol>
<li value="1">
<span><?</span><span>php</span>
</li>
<li>
<span>header</span><span>(</span><span>"Content-type: text/html; charset=utf-8"</span><span>);</span>
</li>
<li><span> </span></li>
<li>
<span>function</span><span> curl</span><span>(</span><span>$img</span><span>)</span><span></span><span>{</span>
</li>
<li><span> </span></li>
<li>
<span>    $ch  </span><span>=</span><span> curl_init</span><span>();</span>
</li>
<li>
<span>    $url </span><span>=</span><span></span><span>'http://apis.baidu.com/apistore/idlocr/ocr'</span><span>;</span><span></span><span>//百度ocr api</span>
</li>
<li>
<span>    $header </span><span>=</span><span> array</span><span>(</span>
</li>
<li>
<span></span><span>'Content-Type:application/x-www-form-urlencoded'</span><span>,</span>
</li>
<li>
<span></span><span>'apikey:69c2ace1ef297ce88869f0751cb1b618'</span><span>,</span>
</li>
<li>
<span></span><span>);</span>
</li>
<li><span> </span></li>
<li>
<span>    $data_temp </span><span>=</span><span> file_get_contents</span><span>(</span><span>$img</span><span>);</span>
</li>
<li>
<span>    $data_temp </span><span>=</span><span> urlencode</span><span>(</span><span>base64_encode</span><span>(</span><span>$data_temp</span><span>));</span>
</li>
<li>
<span></span><span>//封装必要参数</span>
</li>
<li>
<span>    $data </span><span>=</span><span></span><span>"fromdevice=pc&clientip=127.0.0.1&detecttype=LocateRecognize&languagetype=CHN_ENG&imagetype=1&image="</span><span>.</span><span>$data_temp</span><span>;</span>
</li>
<li><span></span></li>
<li>
<span>    curl_setopt</span><span>(</span><span>$ch</span><span>,</span><span> CURLOPT_HTTPHEADER </span><span>,</span><span> $header</span><span>);</span><span></span><span>// 添加apikey到header</span>
</li>
<li>
<span>    curl_setopt</span><span>(</span><span>$ch</span><span>,</span><span> CURLOPT_POST</span><span>,</span><span></span><span>1</span><span>);</span>
</li>
<li>
<span>    curl_setopt</span><span>(</span><span>$ch</span><span>,</span><span> CURLOPT_POSTFIELDS</span><span>,</span><span> $data</span><span>);</span><span></span><span>// 添加参数</span>
</li>
<li>
<span>    curl_setopt</span><span>(</span><span>$ch</span><span>,</span><span> CURLOPT_RETURNTRANSFER</span><span>,</span><span></span><span>1</span><span>);</span>
</li>
<li>
<span>    curl_setopt</span><span>(</span><span>$ch </span><span>,</span><span> CURLOPT_URL </span><span>,</span><span> $url</span><span>);</span><span></span><span>// 执行HTTP请求</span>
</li>
<li>
<span>    $res </span><span>=</span><span> curl_exec</span><span>(</span><span>$ch</span><span>);</span>
</li>
<li>
<span></span><span>if</span><span></span><span>(</span><span>$res </span><span>===</span><span> FALSE</span><span>)</span><span></span><span>{</span>
</li>
<li>
<span>        echo </span><span>"cURL Error: "</span><span></span><span>.</span><span> curl_error</span><span>(</span><span>$ch</span><span>);</span>
</li>
<li>
<span></span><span>}</span>
</li>
<li>
<span>    curl_close</span><span>(</span><span>$ch</span><span>);</span>
</li>
<li><span></span></li>
<li>
<span>    $temp_var </span><span>=</span><span> json_decode</span><span>(</span><span>$res</span><span>,</span><span>true</span><span>);</span>
</li>
<li>
<span></span><span>return</span><span> $temp_var</span><span>;</span>
</li>
<li><span> </span></li>
<li><span>}</span></li>
<li><span> </span></li>
<li>
<span>$wordArr </span><span>=</span><span> curl</span><span>(</span><span>'4.jpg'</span><span>);</span>
</li>
<li>
<span>if</span><span>(</span><span>$wordArr</span><span>[</span><span>'errNum'</span><span>]</span><span></span><span>==</span><span></span><span>0</span><span>)</span><span></span><span>{</span>
</li>
<li>
<span>    var_dump</span><span>(</span><span>$wordArr</span><span>);</span>
</li>
<li>
<span>}</span><span></span><span>else</span><span></span><span>{</span>
</li>
<li>
<span>    echo </span><span>"识别出错:"</span><span>.</span><span>$wordArr</span><span>[</span><span>"errMsg"</span><span>];</span>
</li>
<li><span>}</span></li>
</ol>
Nach dem Login kopieren

Ein paar Bilder getestet und die Genauigkeit ist ziemlich hoch. 100%, es ist unrealistisch~


Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers und darf nicht ohne die Erlaubnis des Bloggers reproduziert werden.

Das Obige stellt die Implementierung der OCR-Texterkennung in PHP vor, einschließlich ihrer Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage