具体的操作步骤如下:
(1)识别车牌,并实现车辆入场和出场。当有车辆的车头或车尾对准摄像头后,管理员单击“识别”按钮,系统将识别该车牌,并且根据车牌判断入场或出场,显示不同信息。车辆入场时效果如图2所示,车辆驶出时效果如图3所示。
图2 车辆入场
图3 车辆出场
(2)收入统计。单击“收入统计”按钮,系统会根据车辆进出记录汇总出一个的收入信息,并且通过柱型图显示出来,效果如图4所示。
图4 收入统计
(3)满预警。系统会根据以往的数据自动判断一周中的哪一天会出现车位紧张的情况,从而在前一天给出预警提示,方便管理员提前做好调度,效果如图5所示。
图5 满预警提示
# 车位文字
def text1(screen):# 剩余车位k =Total - carnif 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 =820text_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 = 820text_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 = 1200text_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=1txt2='停车费:'+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所示的异常信息,那么可能是没有连接摄像头,或者摄像头出现异常。