(转)imagemagick + tesseract-ocr
来源:互联网 发布:淘宝新手怎么开店 编辑:程序博客网 时间:2024/05/16 18:43
工具:imagemagick + tesseract-ocr
Tesseract-ocr据说辨识程度是世界排名第三,可谓神器啊。
准备工作:
1.安装tesseract-ocr
- sudo apt-get install tesseract
2.安装imagemagick
- sudo apt-get install imagemagick
3.安装rmagick
- sudo apt-get remove --purge librmagick-ruby-doc librmagick-ruby1.8
- sudo apt-get install libmagick9-dev ruby1.8-dev
- sudo gem install rmagick
先试一个简单的:
- require 'rubygems'
- require 'rtesseract'
- img = RTesseract.new("tmp/test.jpg")
- img.to_s.sub(/\s+$/, "") # => "3R8Z"
很成功,但这个太简单了。一般破解复杂点的验证码处理步骤是先用imagemagick灰度化,灰度反转,提高对比度,二值化等。然后再用ocr去识别。ocr识别黑白图片效果比较好些。
这个是人民网的验证码:
- img = MiniMagick::Image.new("tmp/people.jpg")
- img.colorspace("GRAY")#灰度化
- image = RTesseract.new(img.path)
- image.to_s.sub(/\s+$/, "") # => "254369"
这个还是简单,再复杂一点的,这个是4399.com的验证码:
有黑色边框,有背景色,文字稍微扭曲。
- img = MiniMagick::Image.new("tmp/4399.jpg")
- img.crop("#{img[:width] - 2}x#{img[:height] - 2}+1+1") #去掉边框(上下左右各1像素)
- img.colorspace("GRAY") #灰度化
- img.monochrome #二值化
- image = RTesseract.new(img.path) #ocr识别
- image.to_s.sub(/\s+$/, "") #=> "5692"
像上面这样简单的识别率几乎能达到80%以上,扭曲太严重的识别率就很低了。有轻微噪点的就得自己写去噪算法了。。
还有一些验证码看起来很变态但是是纸老虎。像当当的。刷新了几次发现结果在1-20之间,选中一个数暴力破解每次也有1/20正确的概率。
还有139的:。答案就12种1-4A-Da-d。而且不区分大小写。选中一个字母每次有1/6的概率命中。
转自:http://www.iteye.com/topic/993538
- (转)imagemagick + tesseract-ocr
- imagemagick tesseract-ocr破解简单验证码
- 用imagemagick和tesseract-ocr破解简单验证码
- 【Tesseract-OCR】玩转OCR中文识别
- 【转】linux 安装Tesseract-OCR
- tesseract-ocr
- ocr tesseract
- Tesseract OCR
- Tesseract OCR
- tesseract ocr
- Tesseract-ocr
- Tesseract ocr
- Tesseract-OCR
- tesseract-ocr
- 利用开源程序(ImageMagick+tesseract-ocr)实现图像验证码识别
- 使用(ImageMagick+tesseract-ocr)实现图像验证码识别实例
- 利用开源程序(ImageMagick+tesseract-ocr)实现图像验证码识别
- 利用开源程序(ImageMagick+tesseract-ocr)实现图像验证码识别
- Oracle 10g OCP 042 题库 71-120 题 共168题
- Oracle 10g OCP 042 题库 121-166题 共168题
- 想成为Google工程师?先回答这15个面试问题
- Oracle中如何插入特殊字符:& 和 ' (多种解决方案)
- 设计模式学习笔记:开篇
- (转)imagemagick + tesseract-ocr
- 讲述ASP.NET2.0服务器捕获回传事件
- NeHe的OpenGL教程1(Bang翻译Delphi版)-如何绘制OpenGL窗口
- html5 全屏播放模式探索
- NeHe的OpenGL教程2(Bang翻译Delphi版)-如何绘制平面图形
- NeHe的OpenGL教程3(Bang翻译Delphi版)-如何给图形着色
- NeHe的OpenGL教程4(Bang翻译Delphi版)-如何让图形旋转
- NeHe的OpenGL教程5(Bang翻译Delphi版)-如何绘制立方体
- NeHe的OpenGL教程6(Bang翻译Delphi版)-如何用图片进行纹理映射