基于pygame的GUI编程笔记:“智能停车场车牌识别系统”中的几点细节

该项目已有详细讲解,详见https://blog.csdn.net/MNBVBM/article/details/108360138

在参考源码的过程中,我发现部分代码在自己的环境中并不能起到相应的作用,遂稍作修改;同时发现原文代码中一点瑕疵(至少在我这运行是有问题的)

一、计算时间差

原文作者调用timeutil.py文件的DtCalc()方法计算停车时间,但是我发现我的timentil模块中并没有该方法,于是在查阅资料后我采用datetime模块,具体代码如下:

        longcar=cars[0][0]#cars为储存汽车信息的表格,cars[0]为第一列,cars[0][0]储存车牌号
        cartime=cars[0][1]#cars[0][1]储存进入停车场时间
        xtfont=pygame.font.SysFont('SimHei',15)
        localtime = time.strftime('%Y-%m-%d %H:%M', time.localtime())
        localtime = time.strptime(localtime,"%Y-%m-%d %H:%M")
        cartime1 = time.strptime(cartime,"%Y-%m-%d %H:%M")
        htime = (datetime.datetime(localtime[0],localtime[1],localtime[2],localtime[3]) - datetime.datetime(cartime1[0],cartime1[1],cartime1[2],cartime1[3]))

此时我发现,只能直接将htime转化为天数或秒数,于是我使用如下转化方法:

htime = (datetime.datetime(localtime[0],localtime[1],localtime[2],localtime[3]) - datetime.datetime(cartime1[0],cartime1[1],cartime1[2],cartime1[3])).seconds
htime = htime//3600

如此便能将停车时间转化为小时数

二、文字显示

项目要求能在窗体实时显示车位数、停车时间最长车辆等信息,我利用原文作者的框架后发现效果如下:
在这里插入图片描述
也就是会出现文字重叠现象。

出现问题的原因是我们在每次循环时都要重新绘制这些文字信息,但是原来的文字依然存在,于是就会一层层地叠加。那么如果我们每次循环对屏幕进行实例化时都让背景填充一边,那么就不会出现文字叠加的现象。但是这种方法应该很耗内存,毕竟原来的图层一直存在,不知道还有没有我不知道的方法可以更好地解决(毕竟刚用pygame,好多方法都不熟悉),希望有大佬能指点,感激不尽。

修改后的代码如下:

    sucess, img = cam.read()
    cv2.imwrite(cdir + '/file/test.jpg', img)
    image = pygame.image.load(cdir + '/file/test.jpg')
    image = pygame.transform.scale(image, (640, 480))
    screen.fill((73, 119, 142))#增加了这个
    screen.blit(image, (2, 2))

最终效果符合要求。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值