python对验证码降噪的实现示例代码

 更新时间:2019年11月12日 16:19:24   作者:lemon *  
这篇文章主要介绍了python对验证码降噪的实现示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言:

最近写爬虫会经常遇到一些验证码识别的问题,现如今的验证码已经是五花八门,刚开始的验证码就是简单的对生成的验证码图片进行一些干扰,但是随着计算机视觉库的 发展壮大,可以轻松解决简单的验证码识别问题,于是一些变态 的验证码就出来了,什么滑动验证码,当然这个也是比较好解决的,用python的selenium库就可以破解一些滑动验证码。可是还出现了一些语音类,点击类的验证码。爬虫与反爬的较量确实越来越精彩了,也挺有趣的!最终促进的是整个行业技术的发展与进步。

在这里插入图片描述

今天分享一个可以解决简单验证码识别的代码。

图片:

在这里插入图片描述

图像灰度化处理

import cv2 
import numpy as np
img = cv2.imread('./picture/1.jpg')

#将图片灰度化处理,降维,加权进行灰度化c
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow('min_gray',gray)

cv2.waitKey(0)

cv2.destroyAllWindows()

效果:

在这里插入图片描述

图像二值化处理

t,gray2 = cv2.threshold(gray,220,255,cv2.THRESH_BINARY)
cv2.imshow('threshold',gray2)

cv2.waitKey(0)

cv2.destroyAllWindows()

效果:

在这里插入图片描述

8领域过滤

def remove_noise(img,k=4):
  
  img2 = img.copy()
  
#   img处理数据,k过滤条件
  w,h = img2.shape
  def get_neighbors(img3,r,c):
    count = 0
    for i in [r-1,r,r+1]:
      for j in [c-1,c,c+1]:
        if img3[i,j] > 10:#纯白色
          count+=1
    return count
#   两层for循环判断所有的点
  for x in range(w):
    for y in range(h):
      if x == 0 or y == 0 or x == w -1 or y == h -1:
        img2[x,y] = 255
      else:
        n = get_neighbors(img2,x,y)#获取邻居数量,纯白色的邻居
        if n > k:
          img2[x,y] = 255
  return img2
result = remove_noise(gray2)
cv2.imshow('8neighbors',result)

cv2.waitKey(0)

cv2.destroyAllWindows()

过滤后的效果:

在这里插入图片描述

代码整合:

import cv2 
import numpy as np
img = cv2.imread('./picture/1.jpg')

#将图片灰度化处理,降维,加权进行灰度化c
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
t,gray2 = cv2.threshold(gray,200,255,cv2.THRESH_BINARY)
cv2.imshow('threshold',gray2)
result = remove_noise(gray2)
cv2.imshow('8neighbors',result)

cv2.waitKey(0)

cv2.destroyAllWindows()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Python3基本输入与输出操作实例分析

    Python3基本输入与输出操作实例分析

    这篇文章主要介绍了Python3基本输入与输出操作,结合实例形式分析了Python3输入输出基本语法、编码转换、注释及中文编码相关使用技巧,需要的朋友可以参考下
    2020-02-02
  • Python中类的mro与继承关系详解

    Python中类的mro与继承关系详解

    这篇文章主要介绍了Python中类的mro与继承关系,文章围绕主题展开初步认识mro的解析顺序,具有一定的参考价值。需要的朋友可以参考一下
    2022-07-07
  • Python学习小技巧之列表项的拼接

    Python学习小技巧之列表项的拼接

    这篇文章主要给大家介绍了Python学习小技巧之列表项的拼接的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • Python中支持向量机SVM的使用方法详解

    Python中支持向量机SVM的使用方法详解

    这篇文章主要为大家详细介绍了Python中支持向量机SVM的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • 使用Python删除PPT中所有超链接的操作步骤

    使用Python删除PPT中所有超链接的操作步骤

    在某些PPT使用场景中,比如需要打印幻灯片或者超链接已失效时,演示文稿中的超链接可能会成为一种干扰,这时我们需要移除PowerPoint演示文稿中的超链接,本文将介绍如何使用Python删除PowerPoint演示文稿中的所有超链接,需要的朋友可以参考下
    2024-08-08
  • 分析Python字符串拼接+=和join()哪个速度更快

    分析Python字符串拼接+=和join()哪个速度更快

    这篇文章主要分析了Python中字符串拼接+=和join()哪个速度更快,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Tensorflow:转置函数 transpose的使用详解

    Tensorflow:转置函数 transpose的使用详解

    今天小编就为大家分享一篇Tensorflow:转置函数 transpose的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • python读写文件操作示例程序

    python读写文件操作示例程序

    日常操作中,少不了文本处理,如程序输入数据准备,python凭借其简洁优雅的语法,在文本处理上比C++等编译型语言开发效率高出一大截,下面看代码
    2013-12-12
  • 使用Python开发一个图像标注与OCR识别工具

    使用Python开发一个图像标注与OCR识别工具

    这篇文章主要介绍了一个使用Python开发的工具,允许用户在图像上进行矩形标注,使用 OCR 对标注区域进行文本识别,并将结果保存为 Excel 文件,感兴趣的可以了解下
    2025-03-03
  • python networkx 包绘制复杂网络关系图的实现

    python networkx 包绘制复杂网络关系图的实现

    这篇文章主要介绍了python networkx 包绘制复杂网络关系图的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07

最新评论