最近去公司,连续几天被保安查健康码,觉得他们效率有点慢,排了长队,回到家就来兴致,写了个简易的健康码识别系统(主要是针对上海的健康码 随申码,能显示健康码的时间)别的省份的健康码没有去弄,能判别是否绿码,但不能显示时间
我主要用到的是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即可使用
到此这篇关于 python实现健康码查验系统的文章就介绍到这了,更多相关python健康码查验内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!