基于springboot+vue调用百度ai实现车牌号识别功能

百度车牌号识别官方文档

结果视频演示

后端代码

private String getCarNumber(String imagePath, int count) {// 请求urlString url = "https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate";try {byte[] imgData = FileUtil.readFileByBytes(imagePath);String imgStr = Base64Util.encode(imgData);String imgParam = URLEncoder.encode(imgStr, "UTF-8");String param = "image=" + imgParam;String result = HttpUtil.post(url, accessToken, param);log.info("车牌号识别结果,result:{}", result);JSONObject resultObj = JSONObject.parseObject(result);JSONObject wordsResult = resultObj.getJSONObject("words_result");return wordsResult.getString("number");} catch (Exception e) {log.error("车牌号识别异常,图片地址:{}", imagePath);log.error(e.getMessage(), e);if (count >= 3) {log.error("车牌号识别异常,已重试{}次,强制退出", count);return "";}try {Thread.sleep(200);} catch (InterruptedException ex) {throw new RuntimeException(ex);}count ++;return getCarNumber(imagePath, count);}}

前端代码

<el-row :gutter="10"><el-col :span="24"><el-uploadclass="upload-demo"drag:action="carNumberAction"accept="image/*"list-type="picture":on-success="uploadSuccess"><el-icon class="el-icon--upload"><upload-filled /></el-icon><div class="el-upload__text">Drop file here or <em>click to upload</em></div><template #tip><div class="el-upload__tip">jpg/png files with a size less than 500kb</div></template></el-upload></el-col><el-col :span="24"><p style="text-align: center; font-size: 30px; font-weight: bold;">车牌号码为:{{carNumber}}</p></el-col></el-row>
let carNumber = ref('xxxx')const uploadSuccess = async (response, uploadFile, uploadFiles) => {if (response.code !== 0) {proxy.msg.error(response.msg)return}carNumber.value = response.data
}

运行结果

视频演示

基于springboot+vue调用百度api的车牌号识别功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/772936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习笔记(4)—逻辑回归(Logistic Regression)

文章目录 逻辑回归&#xff08;Logistic Regression&#xff09;分类问题假说表示判定边界代价函数简化的成本函数和梯度下降多类别分类&#xff1a;一对多 逻辑回归&#xff08;Logistic Regression&#xff09; 分类问题 分类问题中&#xff0c;我们要预测的变量 y y y是一…

【算法】计数排序

1. 简介 计数排序(counting sort)于1954年由哈罗德H西华德(Harold H. Seward)提出。计数排序是一种基于数组键值的正整数排序算法,通过对等于不同键值的数据进行计数,从而获得待排序序列的位置关系。由此,这种算法不是基于比较排序,并且比较排序的性能下限 O ( n log …

【数字图像处理】改变图像灰度级别

改变图像灰度级别 首先&#xff0c;对原始图像 O O O进行灰度级量化: q int ⁡ ( O 2 i ) 2 i , q\operatorname{int}\left(\frac{O}{2^{i}}\right) \times 2^{i}, qint(2iO​)2i, 灰度级别256&#xff0c;128&#xff0c;64&#xff0c;32&#xff0c;16&#xff0c;8&…

Qt 图形视图 /图形视图框架坐标系统的设计理念和使用方法

文章目录 概述Qt 坐标系统图形视图的渲染过程Item图形项坐标系Scene场景坐标系View视图坐标系map坐标映射场景坐标转项坐标视图坐标转图形项坐标图形项之间的坐标转换 其他 概述 The Graphics View Coordinate System 图形视图坐标系统是Qt图形视图框架的重要组成部分&#xf…

第二部分、职教热点

目录 一、课程思政&#xff08;重点&#xff09; 二、工匠精神&#xff08;重点&#xff09; 三、三全育人&#xff08;重点&#xff09; 四、三教改革&#xff08;重点&#xff09; 五、产教融合&#xff08;重点&#xff09; 六、校企合作&#xff08;重点&#xff09;…

PHP学习笔记

//语法错误&#xff08;syntax error&#xff09;在语法分析阶段&#xff0c;源代码并未被执行&#xff0c;故不会有任何输出。 /* 【命名规则】 */ 常量名 类常量建议全大写&#xff0c;单词间用下划线分隔 // MIN_WIDTH 变量名建议用下划线方式分隔 // $var_na…

1.0 html(1)

html 一、基本介绍 1、定义&#xff1a;html是一种超文本标记语言&#xff0c;也是一种标识性语言&#xff08;不是编程语言&#xff09; 标记&#xff1a;记号&#xff08;绰号&#xff09; 超文本&#xff1a;就是页面内容可以包含图片、链接&#xff0c;音乐&#xff0c…

IBM:《2023IBM年报》

2024年3月12日&#xff0c;IBM分享了《2023IBM年报》。 报告节选&#xff1a; 在本财年&#xff0c;IBM 的收入为 619 亿美元&#xff0c;按固定汇率计算增长 3%&#xff0c;自由现金流为 112 亿美元&#xff0c;同比增长 19 亿美元。我们经历了对新 watsonx 平台日益增长的需…

ElasticSearch、java的四大内置函数式接口、Stream流、parallelStream背后的技术、Optional类

第四周笔记 一、ElasticSearch 1.安装 apt-get install lrzsz adduser -m es 创建用户组&#xff1a; useradd *-m* xiaoming(用户名) *PS&#xff1a;追加参数-m* passwd xiaoming(用户名) passwd xiaoming 输入新的 UNIX 密码&#xff1a; 重新输入新的 UNIX 密码&…

Spring Boot | Spring Boot的“核心配置“与“注解“

目录: Spring Boot的核心配置与注解 &#xff1a;1. 全局配置文件 ( application.properties / application.yaml&#xff1a;创建项目时候自动生成&#xff0c;其会被“自动导入”到“程序”中 )application.properties配置文件application.yaml 配置文件 (推荐使用)当value值…

Python中实现跑马灯效果

跑马灯效果是一种在显示屏上文字或图像连续滚动的视觉效果&#xff0c;常见于广告和通知。在Python中&#xff0c;我们可以使用标准库中的功能来创建这样的效果。本文将介绍如何使用Python实现简单的跑马灯效果。 准备工作 首先&#xff0c;确保你的Python环境已经安装了pyga…

C++ Lists(链表)基本用法

Lists将元素按顺序储存在链表中&#xff0c;与向量(vectors)相比&#xff0c;它允许快速的插入和删除&#xff0c;但是随机访问却比较慢。以下是Lists的一些基本用法&#xff1a; 1. assign 语法&#xff1a; void assign(input_iterator start, input_iterator end); void a…

GitLab更新失败(CentOS)

使用yum更新GitLab&#xff0c;出现如下错误提示&#xff1a; Error: Failed to download metadata for repo gitlab_gitlab-ce: repomd.xml GPG signature verification error: Bad GPG signature 编写如下脚本&#xff1a; for pubring in /var/cache/dnf/gitlab_gitlab-?…

基于nodejs+vue电影订票系统python-flask-django-php

本系统采用了node语言的express框架&#xff0c;数据采用MySQL数据库进行存储。结合进行开发设计&#xff0c;功能强大&#xff0c;界面化操作便于上手。本系统具有良好的易用性和安全性&#xff0c;系统功能齐全&#xff0c;可以满足电影订票的相关工作。 目 录 1 绪 论 3 1.1…

centos7 安装influxdb+telegraf+grafana 监控服务器

influxdb influxdb是一个时间序列数据库, 所有数据记录都会打上时间戳, 适合存储数字类型的内容 telegraf telegraf 可以用于收集系统和服务的统计数据并发送到influxdb grafana grafana 是一个界面非常漂亮, 可直接读取influxdb数据展示成各种图表的开源可视化web软件 安…

【WPF应用17】WPF 基本控件-InkCanvas布局,应用详解与示例

WPF (Windows Presentation Foundation) 中的 InkCanvas 控件是一个非常有用的工具&#xff0c;它允许用户在应用程序中进行手写输入、绘制图形和输入触摸命令。在本文中&#xff0c;我们将详细介绍 InkCanvas 控件的基本知识、布局方式以及如何在应用程序中应用它。 1. InkCa…

day2链表

单循环链表&#xff1a;&#xff08;典型应用&#xff09;约瑟夫环 自行了解 #include<iostream> using namespace std;class CircleLink { public:CircleLink(){_head new Node();_tail _head;_head->_next _head;}~CircleLink(){Node* p _head->_next;while…

JMETER如何分布式压测

JMeter分布式压测是一种通过多台计算机共同工作来模拟大量并发用户对服务器或应用程序进行压力测试的方法。这种方法可以有效地提高测试的并发用户数&#xff0c;从而更准确地评估系统在高负载下的性能。以下是进行JMeter分布式压测的基本步骤&#xff1a; 准备测试环境&#…

嵌入式服务器和机架式服务器有什么不同?

嵌入式服务器和机架式服务器是两种不同类型的服务器&#xff0c;它们在设计、用途和部署方式上有所不同&#xff1a; 嵌入式服务器&#xff1a; 设计特点&#xff1a;嵌入式服务器通常设计为一种小型、低功耗、集成度高的服务器&#xff0c;通常采用定制化的硬件和嵌入式操作系…

Gin中的gin.Context与Golang原生的context.Context区别与联系

一.gin中的context gin.Context 1.概念 在 Gin 中&#xff0c;Context 是一个非常重要的概念&#xff0c;它是Gin的核心结构体之一,用于处理 HTTP 请求和响应,在 Gin 的处理流程中&#xff0c;Context 贯穿整个处理过程&#xff0c;用于传递请求和响应的信息Gin 的 Context 是…