import cv2 , numpy as npclass NumberPicTool:templatePadding=0threshold_=130numberPics = []def __init__(self):for i in range(10):pic=cv2.imread(r"./pic/numbers/{}.png".format(i),flags=0)self.numberPics.append(pic)def getCode(self,img_=None):img = cv2.cvtColor(img_, cv2.COLOR_BGR2GRAY)_, img = cv2.threshold(img, self.threshold_, 255, cv2.THRESH_BINARY)cnts, _ = cv2.findContours(img,cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)rects=[cv2.boundingRect(c) for c in cnts]rects=sorted(rects,key=lambda x:x[0])nums=[]for i,r in enumerate(rects):im=img[r[1]-platePadding:r[1]+r[3]platePadding,r[0]-platePadding:r[0]+r[2]platePadding]scores=[]for j,p in enumerate(self.numberPics):if im.shape[-1]==2:# img_ = size(img_, None, None, fx=2, fy=3)imsize(im,(4,9),None,fx=None,fy=None)result=cv2.matchTemplate(im,p,cv2.TM_CCOEFF)scores.append(result)nums.append(str(np.argmax(scores)))return numsdef main():NumberPicTool().getCode()if __name__ == "__main__":main()
本文发布于:2024-01-27 23:17:25,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063686443247.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |