欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP怎么提取图片上的文字

程序员文章站 2022-05-22 17:57:51
...

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 '../AipOcr.php';
// 定义常量
const APP_ID = '写你的id';
const API_KEY = '写你的key';
const SECRET_KEY = '写你的SECRET_KEY';
// 初始化
$aipOcr = new AipOcr(APP_ID, API_KEY, SECRET_KEY);
// 身份证识别
//var_dump($aipOcr->idcard(file_get_contents('idcard.jpg'), true));
// 银行卡识别 
//var_dump($aipOcr->bankcard(file_get_contents('bankcard.jpg')));
// 通用文字识别
$rescult = $aipOcr->general(file_get_contents('20170413195205.jpg'));
$words = $rescult['words_result'];
var_dump($words[0]);
 //var_dump($aipOcr->general(file_get_contents('20170413195205.jpg')));

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

原图:

通用文字识别测试图片

我们看下我本地图片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中文网

相关标签: php