python 用hyperlpr3 进行车牌识别

news/2025/2/19 8:04:34/

开源项目

https://github.com/zeusees/HyperLPR
下面按装相关的模块

pip install opencv-python
pip install hyperlpr3
pip install cvlib

代码

在这里插入图片描述

download_image_from_url 将网上图片存本地。

import urllib.request
import cv2
import hyperlpr3 as lpr3
import matplotlib.pyplot as plt
import tempfile
import osfont_path = 'simhei.ttf'# 加载字体文件
font = cv2.FONT_HERSHEY_SIMPLEXdef download_image_from_url(url):with urllib.request.urlopen(url) as url_obj:data = url_obj.read()with tempfile.NamedTemporaryFile(delete=False) as tmp_file:tmp_file.write(data)return tmp_file.namedef get_car_info():url = "https://pics.jjsos.cn/FgHtNacqa808NZTRklrWJNrmryiA"image_path = download_image_from_url(url)catcher = lpr3.LicensePlateCatcher()image = cv2.imread(image_path)result = catcher(image)os.remove(image_path)if isinstance(result, list):result_list = []for item in result:license_plate = item[0]confidence = item[1]coordinates = item[3]x1, y1, x2, y2 = map(int, coordinates)cv2.rectangle(image, (x1, y1), (x2, y2), (255, 0, 255), 2)text = f"{license_plate} "# Use a specific font for Chinese characters (you can adjust the font size if needed)# cv2.putText(image, text, (x1, y1 - 10), font, 0.5, (255, 0, 255), 2)result_list.append({"license_plate": license_plate, "confidence": str(confidence)})plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))plt.show()cv2.waitKey(0)cv2.destroyAllWindows()vreturn = {"code": 0, "results": result_list}print(vreturn)return vreturnelse:license_plate = result[0]confidence = result[1]coordinates = result[3]x1, y1, x2, y2 = map(int, coordinates)cv2.rectangle(image, (x1, y1), (x2, y2), (255, 0, 255), 2)text = f"{license_plate} "# Use a specific font for Chinese characters (you can adjust the font size if needed)# cv2.putText(image, text, (x1, y1 - 10), font, 0.5, (255, 0, 255), 2)plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))plt.show()cv2.waitKey(0)cv2.destroyAllWindows()vreturn = {"code": 0, "license_plate": license_plate, "confidence": str(confidence)}print(vreturn)return vreturn# Call the function to get car information
get_car_info()

识别返回:
在这里插入图片描述


http://www.ppmy.cn/news/1281022.html

相关文章

微信小程序-textarea组件字数实时更新

一、前言 本文实现的是在小程序中&#xff0c;textarea文本框输入文字后&#xff0c;实时显示文字的字数&#xff0c;获取更好的用户输入体验以及提示。 下图是实现的效果 二、代码实现 2-1、wxml代码 <view style"padding: 30rpx;"><view style"…

本地使用 docker 运行OpenSearch + Dashboard + IK 分词插件

准备基础镜像 注意一定要拉取和当前 IK 分词插件版本一致的 OpenSearch 镜像: https://github.com/aparo/opensearch-analysis-ik/releases 写这篇文章的时候 IK 最新版本 2.11.0, 而 dockerhub 上 OpenSearch 最新版是 2.11.1 如果版本不匹配的话是不能用的, 小版本号对不上…

Excel 获取当前行的行数

ROW() 获取当前行 ROW()1 获取当前行然后支持二次开发

Object.assign({}, obj, obj2) 这算是深拷贝吗

Object.assign({}, obj, obj2) 是使用 Object.assign() 方法来合并对象的一种常见方式&#xff0c;但它并不属于深拷贝。 Object.assign() 方法用于将一个或多个源对象的属性复制到目标对象&#xff0c;并返回目标对象。当目标对象和源对象具有相同的属性时&#xff0c;后面的…

一起玩儿物联网人工智能小车(ESP32)——14. 用ESP32的GPIO控制智能小车运动起来(二)

摘要&#xff1a;本文主要讲解如何使用Mixly实现对单一车轮的运动控制。 下面就该用程序控制我们的小车轮子转起来了。打开Mixly软件&#xff0c;然后单击顶部“文件”菜单中的“新建”功能&#xff0c;我们来开启一个新程序的开发工作。 我们的工作同样是先从最简单的开始&am…

Linux Shell 005-条件判断

Linux Shell 005-条件判断 本节关键字&#xff1a;Linux、Bash Shell、条件判断 相关指令&#xff1a;test、echo、[ ]、[[ ]] 条件判断语法结构 格式1&#xff1a;test 条件表达式 格式2&#xff1a;[ 条件表达式 ] 格式3&#xff1a;[[ 条件表达式 ]] 说明&#xff1a; 格…

基于ERC20代币协议实现的去中心化应用平台

文章目录 内容简介设计逻辑ERC20TokenLoanPlatform 合约事件结构体状态变量函数 Remix 运行实现部署相关智能合约存款和取款贷款和还款 源码地址 内容简介 使用 solidity 实现的基于 ERC20 代币协议的借贷款去中心化应用平台(极简版)。实现存款、取款、贷款、还款以及利息计算的…

智能优化算法应用:基于材料生成算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于材料生成算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于材料生成算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.材料生成算法4.实验参数设定5.算法结果6.…