51Testing软件测试论坛

标题: python 验证码去除粗的干扰曲线 [打印本页]

作者: 测试积点老人    时间: 2021-9-9 14:33
标题: python 验证码去除粗的干扰曲线

图1需要处理的验证码,里面包含细小圆圈噪点,和字母相差不多的曲线
灰度化,二值化处理之后得到图2

百度的OCR接口调用识别还是错误

接下来可以如何处理粗曲线呢?或者突出让验证码的边界更明显?

以下为代码

  1. from PIL import Image
  2. import numpy as np
  3. from aip import AipOcr
  4. import re,requests

  5. APP_ID=''     #这部分隐藏了
  6. API_KEY=''
  7. SECRET_KEY=''
  8. client = AipOcr(APP_ID,API_KEY,SECRET_KEY)
  9. def get_neighbor(W, H, WIDTH, HEIGH):
  10.     neighbor = []
  11.     for w in range(W - 1, W + 2):
  12.         for h in range(H - 1, H + 2):
  13.             # 边界判断
  14.             if (w >= 0 and w < WIDTH and h >= 0 and h < HEIGH):
  15.                 neighbor.append((w, h))
  16.             else:
  17.                 continue
  18.     return neighbor
  19. im = Image.open('C:/Users/1/Desktop/2.png').convert('L')
  20. W,H=im.size
  21. im =im.point((lambda x:255 if x >180 else 0), '1')
  22. im.show()
  23. neighbor = None
  24. for w in range(W):
  25.     for h in range(H):
  26.         if (im.getpixel((w, h)) == 0):
  27.             neighbor = get_neighbor(w, h, W, H)
  28.             pixel = []
  29.             for nei in neighbor:
  30.                 pixel.append(im.getpixel(nei))
  31.                 num_0 = pixel.count(0)
  32.             if (num_0 / 8) > 0.25:     
  33.                 im.putpixel((w, h), 0)
  34.             else:
  35.                 im.putpixel((w, h), 255)
  36. im.show()
  37. im.save('C:/Users/1/Desktop/3.png')
  38. with open(r"C:/Users/1/Desktop/3.png","rb") as f:
  39.     imag=f.read()
  40. data=client.basicAccurate(imag)
  41. data=str(data)
  42. print(data)
  43. numregex = re.compile(r"{'words': '(.*)'}")
  44. mo = numregex.search(data)
  45. print(mo.group(1))
复制代码

[attach]134340[/attach]

[attach]134341[/attach]



作者: 海海豚    时间: 2021-9-10 09:52
https://blog.csdn.net/weixin_40267472/article/details/81979379  看下这个吧
作者: qqq911    时间: 2021-9-10 10:46
试试图像比较分析
作者: jingzizx    时间: 2021-9-10 16:54
建议使用第三方的库




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2