import pygame
import time # 时间
import BtnF # 按钮
#import ocrutil
import parkF2
import parkF # 调用车牌号
from MysqlF import DDL, Select #连接数据库 查询
from location import text0,text1,text2,text3,text4, park_number, place_time,Parking_space
import Charging
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
# Matplotlib中设置字体-黑体,解决Matplotlib中文乱码问题
plt.rcParams['axes.unicode_minus'] = False
# 解决Matplotlib坐标轴负号'-'显示为方块的问题
sns.set(font='SimHei')
# Seaborn中设置字体-黑体,解决Seaborn中文乱码问题
#size=1500,484 # 窗体大小
size =1060,800 # 设定窗体大小
FPS=60 # 设置帧率(屏幕每秒的刷新次数)
# 设置背景颜色
DARKBLUE=(73,119,142)
# DARKBLUE = (75,0,130)
BG=DARKBLUE
#定义颜色
BLAK=(0,0,0)
WHITE = (255, 255, 255)
GREEN=(0,255,0)
BLUE=(72,61,139)
GRAY=(96,96,96)
RED=(220,20,60)
YELLOW=(255,255,0)
# 1.初始化
pygame.init()
# 2.设置窗体名称
pygame.display.set_caption('智能停车场车牌识别计费系统')
# 3.加载图片,设置图标
ic_launcher=pygame.image.load('img/img.png')
pygame.display.set_icon(ic_launcher)
# 4.设置窗体大小、背景颜色
screen=pygame.display.set_mode(size)
screen.fill(BG)
#获取进入停车场的车牌数,就是存入mysql中数据的条数(行数)
sql1 = "SELECT COUNT(*) FROM parkinfo WHERE type=0;"
res1 = Select(sql1)
#print(res1)
# 车位信息 根据type值查询车辆数 type为0表示车辆入场
sql2 = "SELECT count(*) FROM parkinfo where type = 0;"
res = Select(sql2)
print(res[0][0]) #打印入场车辆数 第一行第一列的值 type
# 车牌信息 所有车的车牌信息 (车牌号和入场时间)
sql3 = "SELECT carNumber, date FROM parkinfo where type = 0;"
select = Select(sql3) #用于调用
#print(select)
# sql4 = "SELECT carNumber FROM parkinfo where carNumber ;"
# print(sql4)
# carnumber = parkF.getcn() #获取识别的车牌号
# carnumber = '苏E05EV8'
# carnumber = parkF2.getcn() # 调用'泸KR9888'车牌号
carnumber = '泸KR9888' # 模拟车牌号,节约调用时间
# print(carnumber)
# carnumber = '苏ET07Z8'
# carnumber = '苏ET07Z8'
# carnumber = '苏EG08P9' #VIP车
# carnumber = '京Q58A77'
# carnumber = '鲁NE23AI' #手动设置车牌号,用于测试,节约时间
cartype = '' # 设定车的type初始值为空值
CarNumber = '' # 设定车牌号初始值为空值
Time = '' # 设定时间为空
# 初始化各类值
t0 = '' #停车时间
# t1 = '' #车的类型
# t2 = ''
t3 = ''
t4 = ''
t5 = ''
# type 车类型[0:入场 1:出场]
# state 车状态[0:临时车 1:长期车VIP]
# 设定字体显示大小
xFont = pygame.font.SysFont('SimHei', 20)
# 游戏循环帧率设(控制程序运行时间)
clock=pygame.time.Clock()
# 主线程
while True:
# 加载图像
image = pygame.image.load('imge/img_6.png')
# 设置图片大小
image = pygame.transform.scale(image, (640, 480))
# 绘制视频画面
screen.blit(image, (2, 2))
text0(screen) # 背景和信息文字的位置,以及矩形框的位置
text2(screen) # 停车信息表头的位置
text3(screen) # 收入总计的位置
text4(screen)
park_number(screen, select) # 入场车牌的位置
place_time(screen, select) # 入场时间的位置
# 创建识别按钮
BtnF.Button1(screen, (150, 480), 150, 60, (186,85,211), WHITE, "入场识别", 25) #入场按钮的位置
BtnF.Button2(screen, (640, 480), 150, 60, (186,85,211), WHITE, "计费统计", 25) #出场按钮的位置,同时是完成计费统计
for event in pygame.event.get():
# 关闭页面游戏退出
if event.type==pygame.QUIT:
pygame.quit()
exit()
elif event.type==pygame.MOUSEBUTTONDOWN: #事件判断鼠标是否进行了点击操作。
print(str(event.pos[0])+':'+str(event.pos[1]))#使用 event.pos 获取当前鼠标点击的位置坐标。
#入场识别按钮
# if 492<=event.pos[0] and event.pos[0]<=642 and 422<=event.pos[1] and event.pos[1]<=482:
if 0 <= event.pos[0] and event.pos[0] <= 150 and 422 <= event.pos[1] and event.pos[1] <= 482:
print('点击: 入场识别')
try:
#carnumber=parkF.getcn() #获取识别的车牌号
CarNumber=carnumber
#print(1)
# 格式化当前时间
# localtime = time.strftime('%Y-%m-%d %H:%M', time.localtime())
Time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
# sql3 = "SELECT carNumber FROM parkinfo where carNumber ;"
print('识别成功')
if Parking_space(res): #是否有车位
# 向数据库中插入时数据,同时插入车牌号,时间,类型,状态
# CURRENT_TIMESTAMP函数自动生成时间
sql = "INSERT INTO parkinfo (carNumber, date, type, state) VALUES('%s', " \
"CURRENT_TIMESTAMP, 0, 0)" % (str(carnumber))
state = DDL(sql)
if state > 0:
print('操作成功')
print("当前车牌号为:"+ CarNumber)
print('当前时间为:' + Time)
else:
print('操作失败')
else:
print('没有停车位')
except:
print('识别失败')
continue
pass
# 查询表中车牌号为carnumber,且车辆类型为0的最近一次停车记录的状态。
# 其中,ORDER BY子句按照记录的编号(pid)从小到大排序,LIMIT 1 子句只返回第一条查询结果。
s = "SELECT state FROM parkinfo WHERE carNumber = '%s' and type = 0 ORDER BY pid LIMIT 1;" % (str(carnumber))
re = Select(s)
# 查询车辆类型 查询的条件是车牌号和进入的车辆
# 判断车型 确定车是临时车还是VIP车
if re[0][0] == 0:
cartype = '临时车'
else:
cartype = 'VIP车'
#出场按钮识别 (用于计费统计各业务逻辑)
# if 0<=event.pos[0] and event.pos[0]<=150 and 422<=event.pos[1] and event.pos[1]<=482:
if 492<=event.pos[0] and event.pos[0]<=642 and 422<=event.pos[1] and event.pos[1]<=482:
print('点击出场识别')
try:
CarNumber = carnumber
# 车牌号为CarNumber,且车辆类型为0的最新一次停车记录的停车时间(单位: 分钟)和状态。
# TIMESTAMPDIFF函数用于计算两个时间戳之间的时间差
# ORDER BY子句按照记录的编号(pid)从大到小排序,LIMIT 1 子句只返回第一条查询结果
sql4 = "select TIMESTAMPDIFF(MINUTE, date, CURRENT_TIMESTAMP), state " \
"from parkinfo where carNumber = '%s' and type = 0 " \
"ORDER BY pid DESC LIMIT 1;" % (CarNumber)
res1 = Select(sql4)
#print(res1)
if res1[0][1] == 1: #得到state值
money = 0 # VIP账户不收钱
else: # 计费标准为
mon
没有合适的资源?快使用搜索试试~ 我知道了~
基于python实现的智能停车场车牌识别计费系统
共28个文件
png:13个
py:12个
jpg:3个
8 下载量 16 浏览量
2023-07-10
21:44:42
上传
评论
收藏 8.74MB RAR 举报
温馨提示
智能停车场车牌识别计费系统是基于Python实现的一种应用程序,其主要功能是通过摄像头识别进出停车场的车辆车牌,并据此进行计费和管理。 系统的实现主要包括以下几个步骤: 车牌识别:系统使用图像处理技术和机器学习算法来实现车牌识别。它从摄像头采集的图像中提取车牌区域,并使用OCR(光学字符识别)算法来识别车牌号码。 计费管理:系统通过记录每辆车的入场时间和出场时间,计算停车时间,并根据设定的费率规则计算停车费用。这些费用可以根据不同的策略来计算,例如按小时计费或按固定时段计费。 数据管理:系统会将车辆的进出记录、停车时长和费用等数据进行存储和管理。这些数据可以用于生成报表、统计分析或作为审核依据。 前端界面:系统提供一个用户友好的前端界面,使停车场管理人员能够方便地查看和管理车辆信息、设置费率规则和生成报表。此外,系统还可以提供一个自助服务界面,让车主查询停车费用并进行支付。 数据安全:为了保护用户数据的安全,系统采用合适的安全策略,如数据加密和访问控制,以防止未经授权的访问和数据泄露。 总体来说,基于Python实现的智能停车场车牌识别计费系统能够帮助停车场管理人员实现自
资源推荐
资源详情
资源评论
收起资源包目录
基于python实现的智能停车场车牌识别计费系统.rar (28个子文件)
基于python实现的智能停车场车牌识别计费系统
parkF.py 10KB
BtnF.py 3KB
main.py 13KB
imge
img_3.png 215KB
img_6.png 238KB
1.png 471KB
img_4.png 6.03MB
img_7.png 128KB
img_5.png 119KB
car4.jpg 36KB
img.png 209KB
img_1.png 100KB
img_2.png 488KB
mysql数据连接.py 909B
timeutil.py 557B
img
img_3.png 216KB
img.png 40KB
img_1.png 215KB
img_2.png 228KB
park2.py 12KB
park1.py 9KB
location.py 4KB
Charging.py 572B
MysqlF.py 479B
rowmysql.py 443B
save_img
figure1.jpg 38KB
figure.jpg 35KB
parkF2.py 10KB
共 28 条
- 1
资源评论
青枫浦上看桃花
- 粉丝: 6914
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 百度贴吧12.57.5.0.apk
- JavaScript,简称JS,是一种在Web开发中举足轻重的客户端脚本语言 它最初由Netscape公司的布兰登·艾奇在199
- 什么是智慧司库?什么是智慧司库?
- PHP(Hypertext Preprocessor,超文本预处理器)是一种流行的服务器端脚本语言,尤其适用于Web开发 它诞生
- 基于GD32F103C8T6的USBD工程实例
- Go(也被称为Golang)是由Google公司开发的一种静态强类型、编译型的编程语言 自2007年诞生以来,Go凭借其简洁、高
- Visual Basic(简称VB)是由微软公司开发的一种高级编程语言,特别适用于Windows环境下的应用程序开发 以下是关于
- Delphi是一款在Windows平台上广受欢迎的快速应用程序开发工具(RAD),由最初的Borland公司(现已转移至Emba
- axios-javaweb项目
- 可以帮我看看是什么错吗?
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功