本帖最后由 战网无极限 于 2020-11-7 09:04 编辑
上午看见这个帖子 https://www.52pojie.cn/thread-1295677-1-1.html
于是我就搞了个php版本的
在线演示 https://new.forwines.cn/ocr
核心源代码在这:https://newapi.lanzoui.com/iwG8Oi3efid
完整源代码:https://newapi.lanzoui.com/if1gYi50l1a
本源码基于ThinkPHP5.0.24框架
一、登录百度AI开放平台创建orc应用选择图像识别→创建应用
创建好的应用:
二、下载sdk包我演示的是php的:https://ai.baidu.com/sdk#ocr
三、tp框架引入sdk包我在最外层新建了一个Ocr下载好的sdk包放入到vendor第三方类库里面:
四、代码实现控制器里:[PHP] 纯文本查看 复制代码 <?php
namespace app\api\controller;
use think\Controller;
use think\Request;
class Ocr
{
public function index(Request $request)
{
header("Content-Type: text/html;charset=utf-8");
$type = $request->post('Type');
$ak = '你的apikey';
$appid = '你的appid';
$sk = '你的Secret Key';
vendor('Ocr/AipOcr');
$api = new \AipOcr($appid,$ak,$sk);
if($type=='1'){
$Base = $request->post('Base');
if(!$Base){
return json(['code' => 400, 'msg' => 'error', 'data' => '']);
}
$options['detect_direction']=true;
$res = $api->basicAccuratenew($Base);
$num=$res['words_result_num'];
$text ='';
for($a=0;$a<$num;$a++){
$text.=$res['words_result'][$a]['words']."\r\n";
}
// dump($res);die;
return json(["code" => 200, "msg" => "图片识别成功", "data" => $text]);
}elseif($type=='2'){
$Base = $request->post('Base');
if(!$Base){
return json(['err' => 1, 'msg' => 'error', 'data' => '']);
}
$res = $api->handwritingnew($Base);
$num=$res['words_result_num'];
$text ='';
for($a=0;$a<$num;$a++){
$text.=$res['words_result'][$a]['words']."\r\n";
}
// dump($res);die;
return json(["code" => 200, "msg" => "图片识别成功", "data" => $text]);
}else{
return json((["code" => 400, "msg" => "error", "data" => "缺少关键参数"]));
}
}
}
第三方类库AipOcr.php做了一些修改
[PHP] 纯文本查看 复制代码 public function basicAccuratenew($image, $options=array()){
$data = array();
$data['image'] = $image; //base64_encode($image);因为传递过来就是base64的数据,所以去除base64_encode 并将函数名做了更改
$data = array_merge($data, $options);
return $this->request($this->accurateBasicUrl, $data);
}
|