首頁 >後端開發 >php教程 >PHP怎么提取图片上的文字

PHP怎么提取图片上的文字

PHPz
PHPz原創
2016-06-06 20:36:146569瀏覽

PHP怎么提取图片上的文字

PHP怎么提取图片上的文字?

PHP:基于百度大脑api实现OCR文字识别

有个项目要用到文字识别,网上找了很多资料,效果不是很好,偶然的机会,接触到百度大脑。百度大脑提供了很多解决方案,其中一个就是文字识别,百度提供了三种文字识别,分别是银行卡识别、身份证识别和通用文字识别,下面我们来测试下吧。

第一步:下载PHP文字识别demo

下载地址:https://git.oschina.net/jianqingwang/ocr

第二步:申请api

到百度大脑https://ai.baidu.com/tech/ocr/general申请api

 

百度大脑申请api

申请好了之后,创建应用,可以得到2个信息,一分别是AppID,API Key和Secret Key。

打开demo下的DemoAipOcr.php,我们一起配置下接口信息!

<?php
// 引入文字识别OCR SDK
require_once &#39;../AipOcr.php&#39;;
// 定义常量
const APP_ID = &#39;写你的id&#39;;
const API_KEY = &#39;写你的key&#39;;
const SECRET_KEY = &#39;写你的SECRET_KEY&#39;;
// 初始化
$aipOcr = new AipOcr(APP_ID, API_KEY, SECRET_KEY);
// 身份证识别
//var_dump($aipOcr->idcard(file_get_contents(&#39;idcard.jpg&#39;), true));
// 银行卡识别 
//var_dump($aipOcr->bankcard(file_get_contents(&#39;bankcard.jpg&#39;)));
// 通用文字识别
$rescult = $aipOcr->general(file_get_contents(&#39;20170413195205.jpg&#39;));
$words = $rescult[&#39;words_result&#39;];
var_dump($words[0]);
 //var_dump($aipOcr->general(file_get_contents(&#39;20170413195205.jpg&#39;)));

上面展示了三种识别系统,想测试银行卡识别、身份证识别取消相关方法的注释即可。

原图:

通用文字识别测试图片

我们看下我本地图片20170413195205.jpg的识别效果:

array(12) { [0]=> array(2) { [“location”]=> array(4) { [“left”]=> int(34) [“top”]=> int(13) [“width”]=> int(96) [“height”]=> int(20) } [“words”]=> string(15) “阿迪邮件通” } [1]=> array(2) { [“location”]=> array(4) { [“left”]=> int(770) [“top”]=> int(14) [“width”]=> int(35) [“height”]=> int(19) } [“words”]=> string(6) “首页” } [2]=> array(2) { [“location”]=> array(4) { [“left”]=> int(848) [“top”]=> int(15) [“width”]=> int(42) [“height”]=> int(18) } [“words”]=> string(9) “送邮件” } [3]=> array(2) { [“location”]=> array(4) { [“left”]=> int(928) [“top”]=> int(14) [“width”]=> int(250) [“height”]=> int(19) } [“words”]=> string(33) “于我们联系我们注册登录” } [4]=> array(2) { [“location”]=> array(4) { [“left”]=> int(456) [“top”]=> int(118) [“width”]=> int(289) [“height”]=> int(27) } [“words”]=> string(40) “我们提供最全的邮件营销资源!” } [5]=> array(2) { [“location”]=> array(4) { [“left”]=> int(487) [“top”]=> int(176) [“width”]=> int(228) [“height”]=> int(26) } [“words”]=> string(31) “开始使用阿迪邮件营销!” } [6]=> array(2) { [“location”]=> array(4) { [“left”]=> int(32) [“top”]=> int(331) [“width”]=> int(129) [“height”]=> int(33) } [“words”]=> string(12) “通道齐全” } [7]=> array(2) { [“location”]=> array(4) { [“left”]=> int(423) [“top”]=> int(331) [“width”]=> int(157) [“height”]=> int(34) } [“words”]=> string(15) “不限制内容” } [8]=> array(2) { [“location”]=> array(4) { [“left”]=> int(811) [“top”]=> int(329) [“width”]=> int(127) [“height”]=> int(39) } [“words”]=> string(12) “离线发送” } [9]=> array(2) { [“location”]=> array(4) { [“left”]=> int(31) [“top”]=> int(374) [“width”]=> int(1140) [“height”]=> int(21) } [“words”]=> string(214) “聚合国内外优秀邮件服务商,给用户提供最全的邮件代发如果客户选择国娃服务商,我们不会对内容进行审查,因系统24小时执行邮件推送服务,无需等待,只要提交了邮” } [10]=> array(2) { [“location”]=> array(4) { [“left”]=> int(30) [“top”]=> int(391) [“width”]=> int(1076) [“height”]=> int(26) } [“words”]=> string(195) “服务。只要通过我们,就能使用 Railgun、 Sendmall百为都走国外的邮件服务通道。相比其他服务商,我们坚持件内容,我们系统自动帮你推送到收件人手里!” } [11]=> array(2) { [“location”]=> array(4) { [“left”]=> int(33) [“top”]=> int(410) [“width”]=> int(721) [“height”]=> int(23) } [“words”]=> string(143) “度简单邮件等国内外的邮件群发服务,无缝发送到世界各做好买水人的角色,不啊参与、干预用户的发送内容。” } }

好了,赶紧去注册个账号,测试下百度ocr文字识别的功能吧!

更多相关技术知识,请访问PHP中文网

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn