python对接百度云车牌识别

注册百度智能云,选择产品服务。

https://console.bce.baidu.com/
在这里插入图片描述

每天赠送200次,做开发测试足够了。
在这里插入图片描述

在应用列表复制 AppID , API Key ,Secret Key 备用。
在这里插入图片描述

SDK下载地址

https://ai.baidu.com/sdk#ocr
在这里插入图片描述

下载SDK文件,解压,复制aip文件夹到项目的根目录下备用。
在这里插入图片描述

车牌识别服务费用

在这里插入图片描述

运行代码后的效果图
在这里插入图片描述

实现代码

# 包的本质上是一个包含了一个或多个模块的文件夹,其中还包含一个特殊的文件 __init__.py
# 要注意引入第三方的包的路径: 包名.模块名 =》 aip.ocr
from aip.ocr import AipOcrfrom PIL import Image, ImageDraw, ImageFont
import numpy as np
import cv2# 修改成自己的
APP_ID = 'xxxxxxxxx'
API_KEY = 'xxxxxxxxxxxxx'
SECRET_KEY = 'xxxxxxxxxxxxxxxxxxxx'
# 创建客户端对象
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
# 建立连接的超时时间,单位为毫秒
client.setConnectionTimeoutInMillis(5000)
# 通过打开的连接传输数据的超时时间,单位为毫秒
client.setSocketTimeoutInMillis(5000)""" 解决中文乱码 """
def cv2ImgAddText(img, text, left, top, textColor, textSize):# 判断是否OpenCV图片类型if (isinstance(img, np.ndarray)):img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))# 创建一个可以在给定图像上绘图的对象draw = ImageDraw.Draw(img)# 字体的格式fontStyle = ImageFont.truetype("simsun.ttc", textSize, encoding="utf-8")# 绘制文本draw.text((left, top), text, textColor, font=fontStyle)# 转换回OpenCV格式return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)""" 读取文件内容 """
def getFileContent(filePath):with open(filePath, 'rb') as fp:return fp.read()""" 在图片上画出方框并写上文字 """
def imgDraw(imgPath):image_content = getFileContent(imgPath)# 百度返回的结果res = client.licensePlate(image_content)if res is not None:car_number = res['words_result']['number']car_color = res['words_result']['color']print('车牌号码:' + car_number)print('车牌颜色:' + car_color)# 车牌位置信息location = res['words_result']['vertexes_location']start_x = location[0]['x']start_y = location[0]['y']end_x = location[2]['x']end_y = location[2]['y']# 读取图片img = cv2.imread(imgPath)# 画长方形(图像矩阵,左上角坐标,右下角坐标,颜色,线条粗细)cv2.rectangle(img, (start_x, start_y), (end_x, end_y), (0, 0, 255), 5)# 在图片上绘制文字txt = car_number + ' ' + car_color# cv2ImgAddText(图像, 文字内容, 字体左边开始位置, 字体上面开始位置, (R, G, B), 字体大小)img_txt = cv2ImgAddText(img, txt, start_x+50, start_x+100, (0, 255, 0), 30)# 显示效果cv2.imshow('img', img_txt)# 等待按任意键关闭窗口cv2.waitKey(0)cv2.destroyAllWindows()else:print('车牌识别失败!')if __name__ == '__main__':# 图片路径imgPath = './output/car2.jpg'imgDraw(imgPath)

在代码中要注意引入百度云车牌识别SDK包的路径,否则会报错:ModuleNotFoundError: No module named ‘ocr’ 或者 ImportError: attempted relative import with no known parent package
在这里插入图片描述

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

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

相关文章

matlab中旋转矩阵函数

文章目录 matlab里的旋转矩阵、四元数、欧拉角四元数根据两向量计算向量之间的旋转矩阵和四元数欧拉角转旋转矩阵旋转矩阵转欧拉角旋转矩阵转四元数参考链接 matlab里的旋转矩阵、四元数、欧拉角 旋转矩阵dcmR四元数quatq[q0,q1,q2,q3]欧拉角angle[row,pitch,yaw] % 旋转矩阵…

前端跨页面通信方案介绍

在浏览器中,我们可以同时打开多个Tab页,每个Tab页可以粗略理解为一个“独立”的运行环境,即使是全局对象也不会在多个Tab间共享。然而有些时候,我们希望能在这些“独立”的Tab页面之间同步页面的数据、信息或状态。这就是本文说说…

算法学习——LeetCode力扣动态规划篇2(343. 整数拆分、96. 不同的二叉搜索树、416. 分割等和子集、1049. 最后一块石头的重量 II)

算法学习——LeetCode力扣动态规划篇2 343. 整数拆分 343. 整数拆分 - 力扣(LeetCode) 描述 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。 返回 你可以获得…

构建第一个JS应用(FA模型)

创建JS工程 若首次打开DevEco Studio,请点击Create Project创建工程。如果已经打开了一个工程,请在菜单栏选择File > New > Create Project来创建一个新工程。选择Application应用开发(本文以应用开发为例,Atomic Service对…

【网络基础】一文搞懂,什么是三次握手与四次挥手

文章目录 三次握手过程为什么要三次握手而不是两次握手呢? 四次挥手过程为什么客户端需要等待超时时间?为什么要四次挥手? 参考 三次握手过程 当客户端向服务端发起连接时,会先发一包 SYN 包连接请求数据,进行询问&am…

【智能算法】蜣螂优化算法(DBO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2022年,Xue等人受到自然界中蜣螂生存行为启发,提出了蜣螂优化算法(Dung beetle optimizer, DBO)。 2.算法原理 2.1算法思想 DBO模拟了自然界蜣螂种…

基于8086温度监控报警系统设计

**单片机设计介绍,基于8086温度监控报警系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于8086的温度监控报警系统设计概要主要涵盖了该系统的基本组成、工作原理、设计特点以及应用前景等方面。以下是对该…

HarmonyOS 应用开发之RelationalStore开发

场景介绍 RelationalStore提供了一套完整的对本地数据库进行管理的机制,对外提供了一系列的增、删、改、查等接口,也可以直接运行用户输入的SQL语句来满足复杂的场景需要。 基本概念 谓词:数据库中用来代表数据实体的性质、特征或者数据实体…

字典树基础(Java实现)

字典树也叫Trie,是一种树形结构,其中每个节点可以存储一些变量表示该字符串出现的数量。每条边表示一个字符,如节点9存储一个变量cnt,说明存在三个字符串为“cbc” 例题:前缀判定 import java.math.BigInteger; impor…

Kubernetes(k8s):网络插件之Calico安装与详解

Kubernetes(k8s):网络插件之Calico安装与详解 1、什么是Calico?2、安装和配置Calico(控制节点-master执行)3、配置网络策略4、 Calico 的 yaml 文件部分详解1、ConfigMap配置2、DaemonSet 配置 5、calico-k…

【智能算法】蜜獾算法(HBA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2021年,FA Hashim等人受到自然界中蜜獾狩猎行为启发,提出了蜜獾算法((Honey Badger Algorithm,HBA)。 2.算法原理 2.1算法思想 蜜獾以其…

Mysql 常用SQL语句

1、查看mysql中所有的数据库, show databases; 2、创建库 create database 库名;(也可以用 create database if not exists 库名; 表示如果库不存在再创建) 例:create database if not exists ecology; 3、删除库 …

[网鼎杯 2020 朱雀组]Nmap1

打开题目 在源代码中看到了提示 先随便输入127.0.0.1 那我们试试输入 127.0.0.1 | ls 可以看到 | 被转义符号\所转义 那我们输入 127.0.0.1 /| ls 得到三条反斜线 我们猜测,我们输入的东西是被escapeshellarg和escapeshellcmd处理过后的结果 我们输入的东西必须…

element-ui tag 组件源码分享

今日简单分享一下 tag 组件的源码实现,主要从以下三个方面来分享: 1、tag 组件页面结构 2、tag 组件属性 3、tag 组件方法 一、tag 组件页面结构 vue2 中使用 jsx 语法小结: 1.1 需要安装 babel-plugin-transform-vue-jsx 和 vue/babel-…

echarts仪表盘特殊样式

const drawChartOption function (value, max) {const colorConfig {name: 测试,colorList: {text: #fff,line2: {type: linear,x: 0, // 右y: 0, // 下x2: 1, // 左y2: 0, // 上colorStops: [// {// offset: 0,// color: transparent// },{offset: 0.1,color: #031e…

服务器托管让服务器管理更轻松高效

在信息化飞速发展的今天,服务器作为企业数据处理和信息存储的核心设备,其管理的重要性日益凸显。服务器托管,作为一种高效、专业的服务器管理方式,正逐渐成为众多企业的首选。那么,服务器托管究竟是如何让服务器管理更…

AI版青花瓷

3月22日,Suno正式上线V3版本,很多人都称之为AI音乐的"ChatGPT"时刻,从此人人都可以是作曲家,先来听下最近霸榜的只因你太美baby来感受下它的厉害之处(我已经被洗脑了哈哈) 1. Suno 介绍 根据Sun…

便携式组件el测试仪讲解

TH-EL3便携式组件EL(电致发光)测试仪是一种专门用于检测光伏组件质量的设备。该设备基于电致发光的原理,通过非破坏性的方式快速准确地检测出光伏组件内部的各种缺陷和问题。 产品概述 便携式组件EL测试仪是一种轻便、易于携带的设备&#…

Mysql实战--为什么表数据删掉一半,表文件大小不变

经常会有同学来问我,我的数据库占用空间太大,我把一个最大的表删掉了一半的数据,怎么表文件的大小还是没变? 那么今天,我就和你聊聊数据库表的空间回收,看看如何解决这个问题。 这里,我们还是针…

云容器引擎CCE弹性伸缩

CCE弹性伸缩介绍 CCE的弹性伸缩能力分为如下两个维度: 工作负载弹性伸缩:即调度层弹性,主要是负责修改负载的调度容量变化。例如,HPA是典型的调度层弹性组件,通过HPA可以调整应用的副本数,调整的副本数会…