时间:2022-09-18 11:12:24 | 栏目:Python代码 | 点击:次
最近去公司,连续几天被保安查健康码,觉得他们效率有点慢,排了长队,回到家就来兴致,写了个简易的健康码识别系统(主要是针对上海的健康码 随申码,能显示健康码的时间)别的省份的健康码没有去弄,能判别是否绿码,但不能显示时间
我主要用到的是python,用了opencv库和pyzbar库 下面是程序运行的结果
我用的是笔记本测试,调用笔记本的摄像头进行检测,检测到健康码便会显示结果
绿码和非绿码,对于上海的随申码可以显示时间(是健康码的时间不是电脑时间),如果随申码的时间与电脑时间超过两分钟,则认为是二维码过期
判断是否绿码的部分
# 颜色范围定义 color_dist = { 'red': {'Lower': np.array([0, 60, 60]), 'Upper': np.array([6, 255, 255])}, 'green': {'Lower': np.array([35, 43, 35]), 'Upper': np.array([90, 255, 255])}, } # 检测颜色 def detect_color(image, color): gs = cv2.GaussianBlur(image, (5, 5), 0) # 高斯模糊 hsv = cv2.cvtColor(gs, cv2.COLOR_BGR2HSV) # HSV inRange_hsv = cv2.inRange(hsv, color_dist[color]['Lower'], color_dist[color]['Upper']) #返回mask image_s = image.shape[0]*image.shape[1] #图片面积 ratio = sum(sum(inRange_hsv//255))/image_s if ratio > 0.1 : return True else: return False
下面是打包好的工程文件exe
百度云地址:
链接: https://pan.baidu.com/s/149xXXKARooXo48F2AOSnsQ?pwd=15xu
提取码: 15xu
下载解压后,里面有个test文件夹,点击里面的test.exe即可使用