停车场车牌识别计费系统,用Python如何实现?

关注+星标,每天学习Python新技能

在这里插入图片描述

前段时间练习过的一个小项目,今天再看看,记录一下~

项目结构

说明:

  • datefile文件夹:保存车辆信息表的xlsx文件

  • file文件夹:保存图片文件夹。ic_launcher.jpg是窗体的右上角图标文件;income.png是实现收入统计的柱状图;key.txt是使用百度的图片识别AI接口申请的key;test.jpg保存的是摄像头抓取的图片

  • venv文件夹:项目所需要的各种模块,即项目运行环境

  • btn.py文件:按钮模块

  • main.py文件:程序主文件

  • ocrutil.py文件:车牌识别模块

  • timeutil.py文件:时间处理模块

主要代码

# 车位文字  
def text1(screen):  
    # 剩余车位  
    k = Total - carn  
    if k < 10:  
        # 剩余车位  
        sk = '0' + str(k)  
    else:  
        sk = str(k)  
    # 使用系统字体  
    xtfont = pygame.font.SysFont('SimHei', 20)  
    # 重新开始按钮  
    textstart = xtfont.render('共有车位:' + str(Total) + '  剩余车位:' + sk, True, WHITE)  
    # 获取文字图像位置  
    text_rect = textstart.get_rect()  
    # 设置文字图像中心点  
    text_rect.centerx = 820  
    text_rect.centery = 30  
    # 绘制内容  
    screen.blit(textstart, text_rect)  
  
  
# 停车场信息表头  
def text2(screen):  
    # 使用系统字体  
    xtfont = pygame.font.SysFont('SimHei', 15)  
    # 重新开始按钮  
    textstart = xtfont.render('  车号       时间    ', True, WHITE)  
    # 获取文字图像位置  
    text_rect = textstart.get_rect()  
    # 设置文字图像中心点  
    text_rect.centerx = 820  
    text_rect.centery = 70  
    # 绘制内容  
    screen.blit(textstart, text_rect)  
    pass  
  
  
# 停车场车辆信息  
def text3(screen):  
    # 使用系统字体  
    xtfont = pygame.font.SysFont('SimHei', 12)  
    # 获取文档表信息  
    cars = pi_table[['carnumber', 'date', 'state']].values  
    # 页面就绘制10辆车信息  
    if len(cars) > 10:  
        cars = pd.read_excel(path + '停车场车辆表.xlsx', skiprows=len(cars) - 10, sheet_name='data').values  
    # 动态绘制y点变量  
    n = 0  
    # 循环文档信息  
    for car in cars:  
        n += 1  
        # 车辆车号 车辆进入时间  
        textstart = xtfont.render(str(car[0]) + '   ' + str(car[1]), True, WHITE)  
        # 获取文字图像位置  
        text_rect = textstart.get_rect()  
        # 设置文字图像中心点  
        text_rect.centerx = 820  
        text_rect.centery = 70 + 20 * n  
        # 绘制内容  
        screen.blit(textstart, text_rect)  
    pass  

实现效果

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

什么是 URL ?

统一资源定位符&#xff08;URL&#xff09;是一个字符串&#xff0c;它指定了一个资源在互联网上的位置以及如何访问它。URL 是由几部分组成的&#xff0c;每部分都有其特定的作用&#xff1a; 协议/方案&#xff1a;这是 URL 的开头部分&#xff0c;表明了用于访问资源的协议…

stm32F4库函数c++和C混合编程笔记20240626

1、有时候需要用到c的一些特性&#xff0c;封装&#xff0c;类等等。 2、研究一下如何更改之前c工程的内容&#xff0c;实现混合编程。 操作 1、keil设置 2、要重新建立一个main文件&#xff0c;后缀名是cpp&#xff0c;cpp才能调用cpp. 后面如果要用到c特性的&#xff0c;需要…

python sklearn机械学习-数据预处理

&#x1f308;所属专栏&#xff1a;【机械学习】✨作者主页&#xff1a; Mr.Zwq✔️个人简介&#xff1a;一个正在努力学技术的Python领域创作者&#xff0c;擅长爬虫&#xff0c;逆向&#xff0c;全栈方向&#xff0c;专注基础和实战分享&#xff0c;欢迎咨询&#xff01; 您…

C++: 左值引用和右值引用

目录 概念&#xff1a; 理解&#xff1a; 左值引用&#xff0c;右值引用 左值引用能否给右值取别名&#xff1f; 右值引用能否给左值取别名&#xff1f; 引用的意义是什么&#xff1f; 左值和右值对自定义类型有什么区别吗&#xff1f; move的妙用&#xff01; 没有优化…

统计信号处理基础 习题解答11-13

题目 如果是一个2x1的随机矢量&#xff0c;具有PDF 证明的PDF是一个随机变量。提可以因式分解成&#xff0c;其中是一个在4.5节描述的白化变换。 解答 首先&#xff1a; 因此&#xff0c;存在&#xff1a; 也就是是Hermitian矩阵。详细的性质可以参考&#xff1a; https://z…

Git使用[推送大于100M的文件后解救办法]

推送大于100M的文件后解救办法 本文摘录于&#xff1a;https://blog.csdn.net/u012150602/article/details/122687435只是做学习备份之用&#xff0c;绝无抄袭之意&#xff0c;有疑惑请联系本人&#xff01; 当有文件大于100M的时候在提交的时候没有问题,但是在push的似乎就不行…

电影院售票管理系统(小白)大佬求解

最近在写一个关于电影院售票管理系统的sm项目&#xff0c;但是在买票的环节出现了问题及点击选座购票&#xff0c;没有数据渲染出来&#xff0c;我不知道什么情况&#xff0c;所以问问。有没有大佬可以帮我解决这个问题&#xff1f;下面是我的。控制层&#xff0c;服务层&#…

学校考场电子钟除了报时,还能做什么?-讯鹏时钟

在学校考场中&#xff0c;电子钟的存在似乎已经司空见惯&#xff0c;大多数人仅仅将其视为报时的工具。然而&#xff0c;学校考场电子钟的作用远不止于此&#xff0c;它具备众多优势和丰富的功能。 学校考场电子钟能够提供精准的时间参考&#xff0c;这是其最基础也是最关键的功…

Qt:5.QWidget属性介绍(Enabled属性-控件可用性设置、geometry属性-控件位置/大小设置)

目录 一、 QWidget属性的介绍&#xff1a; 二、Enabled属性-控件可用性设置&#xff1a; 2.1Enabled属性的介绍&#xff1a; 2.2获取控件当前可用状态的api——isEnabled()&#xff1a; 2.3设置控件当前的可用状态的api—— setEnabled() &#xff1a; 2.4 实例&#xff…

第二十一章 网络编程

​ 一、网络的相关概念 1. 网络通信 &#xff08;1&#xff09;网络通信&#xff1a;将 数据 通过网络从一台设备传输到另一台设备 &#xff08;2&#xff09;java.net 包下提供了一系列的类或接口&#xff0c;完成网络通信 2. 网络 概念&#xff1a;两台或多台设备通过一定…

VideoLLaMA 2:多模态视频理解新突破,音频理解能力再升级,挑战 GPT-4V

前言 近年来&#xff0c;人工智能技术飞速发展&#xff0c;尤其是大模型的出现&#xff0c;为视频理解和生成领域带来了前所未有的机遇。然而&#xff0c;现有的视频大模型&#xff08;Video-LLM&#xff09;在处理视频中复杂的时空信息和音频信息方面仍存在不足&#xff0c;例…

基于矩阵分解算法的评分预测实现---信息检索课设以及所涉及的深度学习原理

一、实验环境 Windows,Python 3 Python作为主要编程语言,使用Python的Pandas、NumPy、Matplotlib等库 二、实验内容 主要任务 查阅相关资料,了解矩阵分解算法的基本概念、应用场景及其难点。重点了解SVD(Singular Value Decomposition,奇异值分解)系列方法。掌握Pyth…

Python特征工程 — 1.4 特征归一化方法详解

目录 1 Min-Max归一化 方法1&#xff1a;自定义的Min-Max归一化封装函数 方法2&#xff1a; scikit-learn库中的MinMaxScaler 2 Z-score归一化 方法1&#xff1a;自定义的Z-score归一化封装函数 方法2&#xff1a; scikit-learn库中的StandardScaler 3 最大值归一化 4 L…

嵌入式c语言3——自定义数据类型

结构体struct&#xff0c;共用体union 结构体中定义变量&#xff0c;首尾地址相连 对于union&#xff0c;其包含变量对起始地址相同 由于其起始地址相同&#xff0c;则改变其中某一变量值时有可能使得另一个变量值发生改变 enum 枚举&#xff0c;可以用来定义一堆整形常量构成…

AzureDataFactory Dataverse connector自动处理了分页问题(单次查询上限5000条的限制)

众所周知&#xff0c;在用fetch执行D365的查询时&#xff0c;单次的查询是5000条&#xff0c;如果超过5000条则需要自己处理分页&#xff0c;添加额外的处理逻辑&#xff0c;但在ADF中&#xff0c;Dataverse connector已经自动处理了分页&#xff0c;我们可以很简单的做个POC. …

昇思25天学习打卡营第05天 | 数据变换 Transforms

昇思25天学习打卡营第05天 | 数据变换 Transforms 文章目录 昇思25天学习打卡营第05天 | 数据变换 TransformsCommon TransformsCompose Vision TransformsText TransformPythonTokenizerLookup Lambda Transforms数据处理模式Pipeline模式Eager模式 总结打卡 通常情况下的原始…

巴图制自动化Profinet协议转Modbus协议模块连接PLC和电表通信

1、免编写Modbus轮询程序实现PLC与电表通信的方法 在智能化时代&#xff0c;工业自动控制中的PLC和电表之间的通信是一个常见的需求。传统上&#xff0c;为了使PLC与电表通信&#xff0c;通常需要编写Modbus查询程序来读取和控制数据。然而&#xff0c;使用 巴图制自动化Prof…

(十二)纹理和采样

纹理 在绘制三角形的过程中&#xff0c;将图片贴到三角形上进行显示的过程&#xff0c;就是纹理贴图的过程 uv坐标 如果如果图片尺寸和实际贴图尺寸不一致&#xff0c;就会导致像素不够用了的问题 纹理与采样 纹理对象(Texture)&#xff1a;在GPU端&#xff0c;用来以一…

安全隔离上网的有效途径:沙箱

在数字化浪潮日益汹涌的今天&#xff0c;网络安全成为了不可忽视的重要议题。沙箱技术作为一种高效的隔离机制&#xff0c;为企业和个人提供了一种在享受网络便利的同时&#xff0c;保障系统安全的解决方案。本文旨在深入探讨沙箱技术如何做到隔离上网&#xff0c;从而为用户提…

(五十二)第 8 章 动态存储管理(边界标识法)

1. 背景说明 2. 示例代码 1) errorRecord.h // 记录错误宏定义头文件#ifndef ERROR_RECORD_H #define ERROR_RECORD_H#include <stdio.h> #include <string.h> #include <stdint.h>// 从文件路径中提取文件名 #define FILE_NAME(X) strrchr(X, \\) ? strr…