Android文字识别-阿里云OCR调用
0,阿里云OCR有在线识别接口,直接用httpPOST调用就能实现,开发起来很快捷。识别率还蛮好,摄像头斜着拍也能识别出来。实测识别时间单次在2s左右,普通使用使能满足需求的。
1,在阿里云页面先注册申请免费试用测试,后续可以购买产品增加使用次数。
【通用OCR文字识别】- 通用文字识别/文字识别OCR/图像识别/图片识别文字/OCR识别【最新版】_OCR_人工智能_API-云市场-阿里云
2,申请完成后可以在服务页面找到自己的AppCode,这个代码要配置使用的,很重要。
3,上送的图片要求是BASE64编码的,bitmap的base64编码函数
public static String bitmapToBase64(Bitmap bitmap) {ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);byte[] byteArray = byteArrayOutputStream.toByteArray();return Base64.encodeToString(byteArray, Base64.DEFAULT);}
4,OCR调用
public static void ocrOnline(String strPictureBase64) {String strRet = "";String host = "https://tysbgpu.market.alicloudapi.com";String path = "/api/predict/ocr_general";String method = "POST";String appcode = "自己的code";String bodys = "{\"image\":\"" + strPictureBase64 + "\",\"configure\":{\"output_prob\":true,\"output_keypoints\":false,\"skip_detection\":false,\"without_predicting_direction\":false}}";//Log.i("OCR", "bodys:" + bodys);String strURL = host + path; //请求地址Log.i("OCR", "strURL:" + strURL);try {// 创建URL对象URL url = new URL(strURL);// 创建HttpURLConnection对象HttpURLConnection conn = (HttpURLConnection) url.openConnection();// 设置请求方法为POSTconn.setRequestMethod(method);// 设置请求属性conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");conn.setRequestProperty("Authorization", "APPCODE " + appcode);// 发送请求OutputStream os = conn.getOutputStream();os.write(bodys.getBytes(StandardCharsets.UTF_8));os.flush();os.close();// 处理服务器响应BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line;while ((line = in.readLine()) != null) {strRet += line;}in.close();/*{"request_id": "7879F05E-28F7-427B-8147-BB6A3957E9B4","ret": [{"prob": 0.99,"rect": {"angle": 0,"height": 121,"left": 756,"top": 1830,"width": 1295},"word": "QZ729202308300001"}],"success": true}}*/Log.i("OCR", "ret :" + strRet);JSONObject jsonObject = JSON.parseObject(strRet);if(jsonObject.getBooleanValue("success")){JSONArray jsonArray = jsonObject.getJSONArray("ret");String str = jsonArray.getJSONObject(0).getString("word");Log.i("OCR", "str:" + str);}} catch (Exception e) {e.printStackTrace();}}
5,在按钮响应函数不能直接调用ocrOnline,需要加个线程来调用,所以可以直接调用的接口是
public static void callOCROnline(Bitmap bitmap){new Thread(new Runnable() {@Overridepublic void run() {ocrOnline(bitmapToBase64(bitmap));}}).start();}
5,结合手机后摄像头调用识别效果
摄像头调用请看下下篇。
新人入行,经验分享,如有所误,欢迎指出~
版权归属:深圳市琪智科技有限公司-花花
相关文章:

Android文字识别-阿里云OCR调用
0,阿里云OCR有在线识别接口,直接用httpPOST调用就能实现,开发起来很快捷。识别率还蛮好,摄像头斜着拍也能识别出来。实测识别时间单次在2s左右,普通使用使能满足需求的。 1,在阿里云页面先注册申请免费试用…...

度矩阵、邻接矩阵
度矩阵(degree matrix) 度矩阵是对角阵,对角上的元素为各个顶点的度,顶点vi的度表示和该顶点相关联的变得数量。 在无向图中,顶点vi的度d(vi)N(i)(即与顶点相连的边的数目)有向图中࿰…...

20个经典巧妙电路合集
1、防反接保护(二极管) 在实际电子设计中,防反接保护电路非常重要,不要觉得自己肯定不会接错,实际上无论多么小心,还是会犯错误...... 最简单的就是利用二极管了,利用二极管的单向导电性&#…...

2023全国大学生数学建模ABCDE选题建议,思路模型,小白要怎么选?难度怎么样
首先最重要的,难度C<B<A,D、E题推荐选E题 大家可以查看我们的视频讲解,在这里:【2023全国大学生数学建模竞赛选题建议,难度分析,小白应该怎么选】 https://b23.tv/S6O26uc 选题建议视频播放b23.t…...

【力扣每日一题】2023.9.5 从两个数字数组里生成最小数字
目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们两个数字数组,要我们用这两个数组里的元素组成一个数字,这个数字里需要同时拥有两个数组里的至少一个元…...

跳出Lambda表达式forEach()循环解决思路
背景 在一次需求开发时,发现使用Lambda的forEach()跳不出循环。如下示例代码,想在遍历满足条件时跳出循环。 public static void main(String[] args) {List<Integer> list Arrays.asList(1, 4, 5, 7, 9, 11);list.forEach(e -> {if (e % 2 …...
2023年度AWS SAP直冲云霄训练营学习分享
AWS在公有云市场一直处于行业领先地位,其培训认证体系也是非常的完善的。而且经常在国内组织一些技术论坛,技术分享,公开课,训练营等技术活动。 AWS训练营适合希望学习和考取AWS助理级架构师/专家级架构师(AWS SAA/AW…...

2023高教社杯 国赛数学建模E题思路 - 黄河水沙监测数据分析
1 赛题 E 题 黄河水沙监测数据分析 黄河是中华民族的母亲河。研究黄河水沙通量的变化规律对沿黄流域的环境治理、气候变 化和人民生活的影响, 以及对优化黄河流域水资源分配、协调人地关系、调水调沙、防洪减灾 等方面都具有重要的理论指导意义。 附件 1 给出了位…...
06_快速入门案例实战之电商网站商品管理:集群健康检查,文档CRUD
document数据格式电商网站商品管理案例:背景介绍简单的集群管理商品的CRUD操作(document CRUD (3) 集群的管理 1.快速检查集群的健康状态: cat api 可以查看es中各种各样的数据 GET /_cat/health?v epoch timestamp cluster status node…...

机车整备场数字孪生 | 图扑智慧铁路
机车整备场是铁路运输系统中的重要组成部分,它承担着机车的维修、保养和整备工作,对保障铁路运输的运维和安全起着至关重要的作用。 随着铁路运输的发展、机车技术的不断进步,以及数字化转型的不断推进,数字孪生技术在机车整备场…...
Fair|Fur —— Geometry Nodes
目录 Groom Blend Groom Fetch Groom Pack Groom Unpack Groom Switch Guide Advect Guide Collide With VDB Guide Deform Guide Draw Guide Groom Guide Group Guid Grow to Surface Guide Initialize Guide Mask Guide Partition Guide Process Guide Skin…...

java八股文面试[设计模式]——行为型模式
目录 策略模式 观察者模式 责任链模式 模板方法模式 状态模式 行为型模式关注的是各个类之间的相互作用,将职责划分清楚,使得我们的代码更加地清晰。 策略模式 策略模式太常用了 下面设计的场景是,我们需要画一个图形,可选…...

【送书活动】网络安全(黑客)自学
前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄ÿ…...

如何让数据成为企业的生产力?
为什么有的企业投入大量的人力、物力、财力做数字化转型建设最终做了个寂寞!企业领导没看到数字化的任何价值! 如果要问企业数字化转型建设最核心的价值体现是什么,大部分人都会说是:数据! 然而,不同的人…...

监控 -- linux中的一些系统性能状态指令、Prometheus
目录 监控查看性能相关命令Prometheus1、安装和配置2、将 NFS服务器和LB服务器作为exporter采集数据3、在prometheus server里添加安装exporter程序的服务器 grafana出图工具 监控 监控的目的是获取数据,通过数据分析了解机器是否正常运行 查看性能相关命令 查看c…...

跳槽面试:如何转换工作场所而不失去优势
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...

TINA如何导入spice模型
本文介绍如何使用TINA仿真运算放大器电路。TINA是TI公司自己的spice仿真软件,各个大厂为了更好的让客户使用自己的器件,都纷纷推出自己的仿真软件,ADI也有类似的软件,有机会我们介绍,这期我们主要简单介绍下如何使用TI…...
C. MEX Repetition Pinely Round 2 (Div. 1 + Div. 2)
Problem - C - Codeforces 题目大意:有一个长度为n的数组,数组中每个数字互不相同,范围都是0到n,每次操作将每一个数字从左到右依次变成当前数组的MEX,问k次操作后的数组 1<n<1e5;1<k<1e9 思…...
C++ 运算符
一键三连支持一下吧 C 运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符 本章将逐一介绍算术运算符、关系运算符、逻辑…...

数据结构day07(栈和队列)
今日任务 链式队列: head.h #ifndef __HEAD_H__ #define __HEAD_H__#include <stdio.h> #include <stdlib.h>typedef int datatype; typedef struct link_list{datatype data;struct link_list* next; }link,*linkp; typedef struct circulate_line_t…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...