本文源自:http://hooopo.iteye.com/blog/993538

工具:imagemagick + tesseract-ocr

Tesseract-ocr据说辨识程度是世界排名第三,可谓神器啊。

准备工作:

1.安装tesseract-ocr

Java代码  
  1. sudo apt-get install tesseract

2.安装imagemagick

Java代码  
  1. sudo apt-get install imagemagick

3.安装rmagick

Java代码  
  1. sudo apt-get remove --purge librmagick-ruby-doc librmagick-ruby1.8
  2. sudo apt-get install libmagick9-dev ruby1.8-dev
  3. sudo gem install rmagick

先试一个简单的:

Ruby代码  
  1. require 'rubygems'
  2. require 'rtesseract'
  3. img = RTesseract.new("tmp/test.jpg")
  4. img.to_s.sub(/\s+$/, "") # => "3R8Z"

很成功,但这个太简单了。一般破解复杂点的验证码处理步骤是先用imagemagick灰度化,灰度反转,提高对比度,二值化等。然后再用ocr去识别。ocr识别黑白图片效果比较好些。

这个是人民网的验证码:

Ruby代码  
  1. img = MiniMagick::Image.new("tmp/people.jpg")
  2. img.colorspace("GRAY")#灰度化
  3. image = RTesseract.new(img.path)
  4. image.to_s.sub(/\s+$/, "") # => "254369"

这个还是简单,再复杂一点的,这个是4399.com的验证码:

有黑色边框,有背景色,文字稍微扭曲。

Ruby代码  
  1. img = MiniMagick::Image.new("tmp/4399.jpg")
  2. img.crop("#{img[:width] - 2}x#{img[:height] - 2}+1+1") #去掉边框(上下左右各1像素)
  3. img.colorspace("GRAY") #灰度化
  4. img.monochrome #二值化
  5. image = RTesseract.new(img.path) #ocr识别
  6. image.to_s.sub(/\s+$/, "") #=> "5692"

像上面这样简单的识别率几乎能达到80%以上,扭曲太严重的识别率就很低了。有轻微噪点的就得自己写去噪算法了。。

还有一些验证码看起来很变态但是是纸老虎。像当当的。刷新了几次发现结果在1-20之间,选中一个数暴力破解每次也有1/20正确的概率。

还有139的:。答案就12种1-4A-Da-d。而且不区分大小写。选中一个字母每次有1/6的概率命中。

ps:研究破解验证码不是为了搞破坏。请勿跨省追捕。

当然还有人工ocr:优优云打码等 这些是付费的居多

破解验证码相关:用imagemagick和tesseract-ocr破解简单验证码相关推荐

  1. java验证码功能一般怎么做的_java制作简单验证码功能

    本文实例为大家分享了java制作简单验证码的具体代码,供大家参考,具体内容如下 在这里我们需要用到java的画笔工具,所以我们需要导入以下包 import="java.util.*,java ...

  2. python代码标识码_代码分享:使用Python和Tesseract来识别图形验证码

    原标题:代码分享:使用Python和Tesseract来识别图形验证码 *本文原创作者:ipenox,本文属FreeBuf原创奖励计划,未经许可禁止转载 各位在企业中做Web漏洞扫描或者渗透测试的朋友 ...

  3. C#使用Tesseract OCR 解析验证码

    下面介绍一个开源的OCR引擎Tesseract2.值得庆幸的是虽然是开源的但是它的识别率较高,并不比其他引擎差劲.网上介绍Tessnet2也是当时时间排名第三的识别引擎,只是后来慢慢不维护了,目前是G ...

  4. Tesseract OCR简介(三)--安装及参数使用

    参考:AI-Tesseract-OCR简介_花熊的博客-CSDN博客_tesseract坐标 一.windows 1.1 Tesseract安装 适用于Tesseract 3.05和Tesseract ...

  5. Tesseract OCR简介(一)

    简介 Tesseract(/'tesərækt/) 这个词的意思是"超立方体",指的是几何学里的四维标准方体,又称"正八胞体".右图是一个正八胞体绕着两个四维空 ...

  6. php ocr识别验证码,tesserocr 简单验证码自动识别

    简单文字验证码自动识别方法 前言 概述:OCR光学字符识别可以将验证码转换为电子文字,tesserocr是Python的一个OCR识别库,但是是对tesserect做的一层pythonAPI封装.我们 ...

  7. 使用ImageMagick和Tesseract进行简单数字图像识别

    使用ImageMagick和Tesseract进行简单数字图像识别 由于直接使用 tesseract 进行识别,识别率很低, ImageMagick 安装.配置及使用:  平台:winXP  1. 安 ...

  8. 【爬虫】学习:OCR识别图形验证码

    GitHub python3网络爬虫开发实战第二版--8.1 环境问题 安装 1.参考:Tesserocr 的安装 | 静觅 在 Windows 下,首先需要下载 Tesseract,它为 Tesse ...

  9. python(自动化)利用selenium+百度ocr文字识别验证码实现自动登陆登陆CET-四级报名系统

    操作步骤: 1:登陆打开CET-考试系统 2:填写相关登陆信息 3:调用百度ocr实现文字验证码识别 4:实现登陆 如何使用和调用百度ocr文字识别接口 1:进入百度AI开发平台:链接 2:在页面上选 ...

最新文章

  1. python3.7源码分析-集合(set)
  2. 从数仓到数据中台,谈技术选型最优解
  3. 小程序定制开发需要注意的事项
  4. NameServer的总控逻辑
  5. CTFshow php特性 web96
  6. kthread_work和kthread_worker机制
  7. python3 开发面试题(collections中的Counter)6.7
  8. when is SAP UI5 where is title 'Scaffold in Shell integration test' defined
  9. POI 导出导入工具类介绍
  10. SNAP7 C++ 通讯
  11. 创意视频混音软件:Remixvideo for Mac
  12. 单总线CPU微程序控制器设计
  13. 关于dnw驱动安装失败的问题解决
  14. 三国志战略版:Daniel_马腾分析
  15. 计算机等级考试excel试题,计算机等级考试试题及答案解析(Excel) -电脑资料
  16. 输入半径与高求圆周长、面积,圆球表面积、体积,圆柱表面积、体积
  17. 使用selenium抓取1688供应商
  18. 【Unity】Shader效果——Snow雪地
  19. win10 固定本机IP
  20. 60度斜坡怎么计算_电梯基坑放坡60度的坡应该怎么算

热门文章

  1. IE-LAB:5G将增强Wi-Fi,而不是取代它
  2. 竟然有如此好用的读Android源码利器
  3. 精彩对白:好想好想谈恋爱
  4. 开放式激光振镜运动控制器(二):ZMC408SCAN激光接口与控制
  5. lol选区界面显示连接服务器,LOL全新客户端选区界面
  6. POI 给段落设置字体
  7. Dmaven.multiModuleProjectDirectory system property is not set
  8. 第二类修正贝塞尔函数
  9. 会计要素的核算-用例
  10. Linux 常见命令-文件和磁盘管理