|
- #coding=utf-8
- import os
- import numpy as np
- import cv2
- import json
- from hyperlpr import pipline as pp
- import sys
- from Levenshtein import StringMatcher as sm
-
- reload(sys)
- sys.setdefaultencoding("utf-8")
- parent= "you folder"
-
- def comparestring(a,b):
- g = 0
- if len(a) == len(b):
- for x,y in zip(a,b):
- if x!=y:
- g+=1
- return g
- count = 0 ;
- count_p = 0
- count_d = 0
- count_lev = 0
- count_undetected = 0
- roi = [470,400,650,580]
- for filename in os.listdir(parent):
-
- path = os.path.join(parent,filename)
- print path
-
- if path.endswith(".jpg") or path.endswith(".png"):
- ics,name = os.path.split(path)
-
-
- name,ext = name.split(".")
-
- image = cv2.imread(path)
- image = image[roi[1]:roi[1]+roi[3],roi[0]:roi[0]+roi[2]]
- # cv2.imshow("test",image)
- # cv2.waitKey(0)
- info,dataset = pp.SimpleRecognizePlate(image)
- ext = ext.strip()
- name = name.strip()
-
- if len(dataset)==0:
- count_undetected +=1
-
- # cv2.imwrite("./cache/bad2/" + name + ".png", image)
-
- for one in dataset:
-
- # p = sm.StringMatcher(seq1=one.encode("utf-8"),seq2=name.encode("utf-8"))
- A = one.decode("utf-8")
- B = name.decode("utf-8")
- print one.decode("utf-8"),"<->",name.decode("utf-8"),"编辑距离:",comparestring(A,B)
- if comparestring(A,B)<3:
- count_lev+=1
- else:
- cv2.imwrite("./cache/bad2/"+B+"->"+A+".png",image)
-
- if one.decode("utf-8") == name.decode("utf-8"):
- count_p+=1
- break
- else:
- print "error",one.decode("utf-8"), name.decode("utf-8")
- count_d+=1
- # cv2.imshow("image",image)
- # cv2.waitKey(0)
- # break
- count+=1
- print count_p / float(count),"编辑距离[1]:",count_lev/float(count),u"识出",count_p,u"总数",count,u"未识出",count_d,u"未检测出",count_undetected
- if count_p+count_d+count_undetected!=count:
- print dataset,len(dataset)
- # exit(0)
|