十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章将为大家详细讲解有关利用Python如何实现识别照片中的条形码,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
创新互联是一家专注网站建设、网络营销策划、小程序制作、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立十年以来,已经为上1000家成都OPP胶袋各业的企业公司提供互联网服务。现在,服务的上1000家客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。最近一直在玩数独,突发奇想实现图像识别求解数独,输入到输出平均需要0.5s。
整体思路大概就是识别出图中数字生成list,然后求解。
输入输出demo
数独采用的是微软自带的Microsoft sudoku软件随便截取的图像,如下图所示:
经过程序求解后,得到的结果如下图所示:
def getFollow(varset, terminalset, first_dic, production_list): follow_dic = {} done = {} for var in varset: follow_dic[var] = set() done[var] = 0 follow_dic["A1"].add("#") # for var in terminalset: # follow_dic[var]=set() # done[var] = 0 for var in follow_dic: getFollowForVar(var, varset, terminalset, first_dic, production_list, follow_dic, done) return follow_dic def getFollowForVar(var, varset, terminalset, first_dic, production_list, follow_dic, done): if done[var] == 1: return for production in production_list: if var in production.right: ##index这里在某些极端情况下有bug,比如多次出现var,index只会返回最左侧的 if production.right.index(var) != len(production.right) - 1: follow_dic[var] = first_dic[production.right[production.right.index(var) + 1]] | follow_dic[var] # 没有考虑右边有非终结符但是为null的情况 if production.right[len(production.right) - 1] == var: if var != production.left[0]: # print(var, "吸纳", production.left[0]) getFollowForVar(production.left[0], varset, terminalset, first_dic, production_list, follow_dic, done) follow_dic[var] = follow_dic[var] | follow_dic[production.left[0]] done[var] = 1