当前位置: 首页 > news >正文

Laravel8中调取腾讯云文字识别OCR

记录一下在Laravel8项目开发过程中调取腾讯云文字识别OCR

1.获取腾讯云开发秘钥

https://console.cloud.tencent.com/cam/capi
在这里插入图片描述

2.在项目env文件中配置SecretId和SecretKey

# 腾讯云api
TENCENT_SECRET_ID = 腾讯云SecretId
TENCENT_SECRET_KEY = 腾讯云SecretKey

3.安装腾讯云OCR扩展

composer require tencentcloud/ocr

在vendor扩展文件夹下可见新安装的扩展
在这里插入图片描述

4.查看腾讯云文字识别OCR文档,对照方法参数进行调取

https://cloud.tencent.com/document/product/866/33526#1.-.E6.8E.A5.E5.8F.A3.E6.8F.8F.E8.BF.B0
在这里插入图片描述
对照项目扩展文件夹
在这里插入图片描述

5.方法调取

<?php
use TencentCloud\Common\Credential;
use TencentCloud\Common\Profile\ClientProfile;
use TencentCloud\Common\Profile\HttpProfile;
use TencentCloud\Ocr\V20181119\Models\GeneralAccurateOCRRequest;
use TencentCloud\Ocr\V20181119\OcrClient;class IdentifyImageLogic extends Logic
{/*** 文字识别* @param string $file_path 文件相对路径* @param string $imageBase64 图片base64转码* @return void*/public function identifyImage(string $file_path = '', string $imageBase64 = ''){// 判断文件类型if ($file_path) {$local_path = storage_path("app/" . $file_path);$params = array(// 获取图片的base64加密内容'ImageBase64' => base64_encode(file_get_contents($local_path)),);} else if ($imageBase64) {$params = array(// 获取图片的base64加密内容'ImageBase64' => $imageBase64,);} else {return ['文件不存在', []];}// 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密// 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的			    方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305$SecretId = env('TENCENT_SECRET_ID');$SecretKey = env('TENCENT_SECRET_KEY');// 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取$cred = new Credential($SecretId, $SecretKey);// 实例化一个http选项,可选的,没有特殊需求可以跳过$httpProfile = new HttpProfile();$httpProfile->setEndpoint("ocr.tencentcloudapi.com");// 实例化一个client选项,可选的,没有特殊需求可以跳过$clientProfile = new ClientProfile();$clientProfile->setHttpProfile($httpProfile);// 实例化要请求产品的client对象,clientProfile是可选的$client = new OcrClient($cred, "", $clientProfile);// 实例化一个请求对象,每个接口都会对应一个request对象$req = new GeneralAccurateOCRRequest();$req->fromJsonString(json_encode($params));// 返回的resp是一个GeneralAccurateOCRResponse的实例,与请求对象对应$resp = $client->GeneralAccurateOCR($req);// 输出json格式的字符串回包$list = json_decode($resp->toJsonString())->TextDetections ?? [];$question_text = [];foreach ($list as $val) {$question_text[] = $val->DetectedText ?? '';}$question_text_str = implode(PHP_EOL, $question_text);return ['', ['question_text' => $question_text_str]];}
}

返回结果按照实际使用要求进行处理,这里只提取了文字部分并且使用换行符分隔。

{"code": 200,"message": "操作成功","data": {"question_text": "1.驾驶机动车在没有中心线的城市道路上,最高速度不能超过每小时\r\n多少公里?\r\nA. 30 B. 40\r\nC. 50\r\nD.70\r\n答案:A\r\n2.车辆在山区道路跟车行驶时,应怎样做?\r\nA.紧随前车之后\r\nB.适当加大安全距离\r\nC.适当减小安全距离\r\nD.尽可能寻找超车机会\r\n答案:B\r\n3.夜间驾驶机动车通过人行横道时需要交替使用远近光灯。\r\nA. 正确 B. 错误\r\n答案:A"},"timestamp": 1751504861779
}

6.扩展中还有其他方法根据实际使用需求进行方法调取

在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/579405.html

相关文章:

  • 【前端开发】Uniapp分页器:新增输入框跳转功能
  • SpringCloud系列(49)--SpringCloud Stream消息驱动之实现生产者
  • Rubber Band Algorithm 应力及反作用力测试
  • 运维打铁: 企业运维开发痛点之解决方案
  • ModuleNotFoundError: No module named ‘onnxruntime‘
  • 【免费.NET方案】CSV到PDF与DataTable的快速转换
  • 图论基础算法入门笔记
  • MySQL 8.0 OCP 1Z0-908 题目解析(18)
  • 深度学习2(逻辑回归+损失函数+梯度下降)
  • 在 VSCode 中高效配置自定义注释模板 (无需插件)
  • Python 中如何使用 Conda 管理版本和创建 Django 项目
  • Flowable多引擎架构搭建方案
  • 车载以太网-IP 掩码 vlan 端口
  • 前端的一些报错
  • Odoo 中国特色高级工作流审批模块研发
  • 编程基础:成员函数
  • 【LUT技术专题】3DLUT压缩-CLUT
  • 朝鲜APT组织使用Nim语言恶意软件对macOS发起隐秘Web3与加密货币攻击
  • .net wpf混淆
  • uniapp 使用ffmpeg播放rtsp
  • QT常用类和模块
  • Qt宝藏库:20+实用开源项目合集
  • Java——初始guava(1)
  • 【python】OOP:Object-Oriented Programming
  • Linux基本命令篇 —— tar命令
  • Redis缓存架构实战
  • 微算法科技(NASDAQ MLGO)基于量子图像处理的边缘检测算法:开拓图像分析新视野
  • 中国户外品牌全球竞争力榜单发布:科技突围与文化赋能重塑行业格局
  • 扫地机产品--电池是否存在类似充电宝自燃问题?
  • 【JS笔记】JS 和 noodjs 的常见操作(十)