简易数字识别:路尼亚pvp验证码

阅读: 评论:0

简易数字识别:路尼亚pvp验证码

简易数字识别:路尼亚pvp验证码

  1. 做好二值化的数字模板,shape都是9*4
  2. 对要识别图像转灰度图,二值化
  3. 各自图像形态处理,去噪(此项目不需要)
  4. findContours找轮廓
  5. 分割数字(此项目不需要)
  6. 把轮廓内图形resize成模板大小(也可以用卷积网络)
  7. 遍历,matchTemplate,取最大值
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)im&#size(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小时内删除。

标签:验证码   尼亚   简易   数字   pvp
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23