具体的操作步骤如下:
(1)识别车牌,并实现车辆入场和出场。当有车辆的车头或车尾对准摄像头后,管理员单击“识别”按钮,系统将识别该车牌,并且根据车牌判断入场或出场,显示不同信息。车辆入场时效果如图2所示,车辆驶出时效果如图3所示。
图2 车辆入场
图3 车辆出场
(2)收入统计。单击“收入统计”按钮,系统会根据车辆进出记录汇总出一个的收入信息,并且通过柱型图显示出来,效果如图4所示。
图4 收入统计
(3)满预警。系统会根据以往的数据自动判断一周中的哪一天会出现车位紧张的情况,从而在前一天给出预警提示,方便管理员提前做好调度,效果如图5所示。
图5 满预警提示
# 车位文字
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 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
# 收入统计
def text5(screen):
# 计算price列 和
sum_price = pi_info_table['price'].sum()
# print(str(sum_price) + '元')
# 使用系统字体
xtfont = pygame.font.SysFont('SimHei', 20)
# 重新开始按钮
textstart = xtfont.render('共计收入:' + str(int(sum_price)) + '元', True, WHITE)
# 获取文字图像位置
text_rect = textstart.get_rect()
# 设置文字图像中心点
text_rect.centerx = 1200
text_rect.centery = 30
# 绘制内容
screen.blit(textstart, text_rect)
# 加载图像
image = pygame.image.load('file/income.png')
# 设置图片大小
image = pygame.transform.scale(image, (390, 430))
# 绘制月收入图表
screen.blit(image, (1000,50))
#判断停车时间 如果时间
if y==0:
y=1
txt2='停车费:'+str(3*y)+'元'
txt3='出停车场时间:'+localtime
# 删除停车场车辆表信息
pi_table=pi_table.drop([kcar],axis = 0)
# 更新停车场信息
pi_info_table=pi_info_table.append({'carnumber': carnumber,
'date': localtime,
'price':3*y,
'state': 1}, ignore_index=True)
# #保存信息更新xlsx文件
DataFrame(pi_table).to_excel(path + '停车场车辆表' + '.xlsx',
sheet_name='data', index=False, header=True)
DataFrame(pi_info_table).to_excel(path + '停车场信息表' + '.xlsx',
sheet_name='data', index=False, header=True)
# 停车场车辆
carn -= 1
说明:在运行程序时,如图出现如图5所示的异常信息,那么可能是没有连接摄像头,或者摄像头出现异常。