- 浏览: 335156 次
- 性别:
- 来自: 北京
文章分类
最新评论
工具: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的概率命中。
ps:研究破解验证码不是为了搞破坏。请勿跨省追捕。
评论
9 楼
huyong36
2012-03-28
收藏起来。。
8 楼
bxc168
2012-02-22
bxc168 写道
img = RTesseract.new("tmp/test.jpg")
img = RTesseract.new("tmp/test.jpg")
就是执行到这个步骤,里面转换不了,我是在WINDOS平台下
bxc168 写道
你好,你的例子为什么运行的时候报错
RTesseract::ConversionError (RTesseract::ConversionError)
请问有什么地方需要注意吗?
RTesseract::ConversionError (RTesseract::ConversionError)
请问有什么地方需要注意吗?
img = RTesseract.new("tmp/test.jpg")
就是执行到这个步骤,里面转换不了,我是在WINDOS平台下
说错了,是在img.to_s.sub(/\s+$/, "")这里,报错的,好像是转换不了,不知道为什么
7 楼
bxc168
2012-02-22
img = RTesseract.new("tmp/test.jpg")
img = RTesseract.new("tmp/test.jpg")
就是执行到这个步骤,里面转换不了,我是在WINDOS平台下
bxc168 写道
你好,你的例子为什么运行的时候报错
RTesseract::ConversionError (RTesseract::ConversionError)
请问有什么地方需要注意吗?
RTesseract::ConversionError (RTesseract::ConversionError)
请问有什么地方需要注意吗?
img = RTesseract.new("tmp/test.jpg")
就是执行到这个步骤,里面转换不了,我是在WINDOS平台下
6 楼
bxc168
2012-02-22
你好,你的例子为什么运行的时候报错
RTesseract::ConversionError (RTesseract::ConversionError)
请问有什么地方需要注意吗?
RTesseract::ConversionError (RTesseract::ConversionError)
请问有什么地方需要注意吗?
5 楼
Hooopo
2011-10-11
JasonChi 写道
你好,我在设置解析图片灰度的时候遇到下面问题,请问是什么问题呢?
Command ("mogrify -colorspace "GRAY" public/price1.jpg") failed: {:status_code=>1,utput=>""}
Command ("mogrify -colorspace "GRAY" public/price1.jpg") failed: {:status_code=>1,utput=>""}
运行identify看看imagemagick是否安装ok
4 楼
JasonChi
2011-10-11
你好,我在设置解析图片灰度的时候遇到下面问题,请问是什么问题呢?
Command ("mogrify -colorspace "GRAY" public/price1.jpg") failed: {:status_code=>1,utput=>""}
Command ("mogrify -colorspace "GRAY" public/price1.jpg") failed: {:status_code=>1,utput=>""}
3 楼
up2u0609
2011-07-27
擦,果断收藏给老婆作医院挂号器用
2 楼
Hooopo
2011-04-30
fireflyman 写道
皮皮书屋的这种,怎么处理.......
#include <stdio.h> int n[]={0x48, 0x65,0x6C,0x6C, 0x6F,0x2C,0x20, 0x77,0x6F,0x72, 0x6C,0x64,0x21, 0x0A,0x00},*m=n; main(n){ if(putchar (*m)!='\0') main(m++); }
这个就更简单了啊。
1.把抓取这段代码,保存到xx.c
2.编译:gcc xx.c
3.用ruby调用编译后的文件得到结果。
1 楼
fireflyman
2011-04-30
皮皮书屋的这种,怎么处理.......
#include <stdio.h> int n[]={0x48, 0x65,0x6C,0x6C, 0x6F,0x2C,0x20, 0x77,0x6F,0x72, 0x6C,0x64,0x21, 0x0A,0x00},*m=n; main(n){ if(putchar (*m)!='\0') main(m++); }
发表评论
-
新博客
2012-04-23 20:47 1734https://db-china.org -
Ruby Verbose Warning Mode
2011-10-16 14:48 2051Ruby在很多方面是一个更优雅的Perl,从Perl社区继承了 ... -
Pattern Match In Ruby
2011-10-07 01:17 2006最近看了一些Erlang,模式匹配是个好东西,简单的sum函数 ... -
Draper: View Models for Rails
2011-10-07 01:19 2268Draper是一个Ruby gem,它让Rails model ... -
Active Record batch processing in parallel processes
2011-10-07 01:20 2270Active Record 提供 find_each来分批处理 ... -
最轻量级的Ruby后台任务
2011-08-04 16:47 3860普通情况下ruby调用系统命令行的过程是堵塞的,无论是用sys ... -
test
2011-07-15 19:59 0test -
fiber
2011-06-17 09:37 0挖坑,待填。。 1.用到fiber.alive?、fiber ... -
Identity Map in Rails3.1
2011-06-12 18:29 2737Identity Map是Rails3.1的又 ... -
xx00
2011-06-06 03:40 0https://github.com/ngmoco/cache ... -
挖坑1
2011-06-06 02:17 0cache money 源码 替换memcache为redis ... -
websocket demo
2011-06-04 20:44 2054地址:https://github.com/hooopo/we ... -
ruby GC
2011-06-02 04:24 0http://blog.csdn.net/lijun84/a ... -
reduce method missing call stack with dynamic define method
2011-04-22 22:54 1592method_missing是ruby里面一个非常cool的h ... -
Autocompete with Trie
2011-04-09 04:04 1673像微薄里面用户输入一 ... -
OAuth gem for rails,支持豆瓣,新浪微薄,腾讯微博,搜狐微博,网易微博
2011-03-26 03:13 4480地址:https://github.com/hooopo/oa ... -
用jmeter模拟amf请求进行压力测试
2010-12-16 16:56 30221.获取amf二进制包: 在本地建立proxy,端口为888 ... -
Memoization in Ruby
2010-11-14 11:42 1210这里的Memoization就是将ruby的方法或lambda ... -
整理了一下2008-2010的RubyHeroes博客列表
2010-10-07 02:26 2827Bryan Helmkamp(webrat作者)https:/ ... -
长期收藏各种有用gems..
2010-09-26 17:17 267Multipart Body – A gem for work ...
相关推荐
在“tesseract-ocr-setup-3.05.01dev-20170510.exe.zip”压缩包中,包含的是Tesseract OCR的一个特定版本——3.05.01dev的安装程序,发布日期为2017年5月10日。 **OCR技术** OCR技术是计算机视觉领域的一个分支,...
sudo apt install tesseract-ocr-chi-sim tesseract-ocr-chi-trad ``` 在RPM系统上: ```bash sudo dnf install tesseract-langpack-chinese # 或者 sudo yum install tesseract-langpack-chinese ``` 安装完成后...
在提供的压缩包文件中,我们有两个版本的Tesseract OCR安装程序:tesseract-ocr-setup-3.05.02.exe 和 tesseract-ocr-setup-3.05.01-20170602.exe。这些是用于在Windows操作系统上安装Tesseract OCR的执行文件。 **...
sudo zypper install tesseract-ocr-chi_sim tesseract-ocr-eng ``` 你可以根据实际需求安装更多语言的数据包。 ### 3. 配置环境变量 安装完成后,确保Tesseract OCR可以在系统的PATH中找到。检查Tesseract的路径...
sudo apt-get install tesseract-ocr-eng tesseract-ocr-chi-sim tesseract-ocr-chi-trad ``` 3. **使用Tesseract进行OCR** 要运行Tesseract,你需要通过命令行指定输入图像文件和输出文本文件。例如,如果图像...
ImageMagick是一款强大的开源图像处理工具,用于在各种操作系统上创建、编辑、组合和转换位图图像。这个压缩包文件“ImageMagick-6.9.3-7-Q16-x64-dll安装程序.rar”包含的是ImageMagick的特定版本——6.9.3-7,该...
总之,"ImageMagick-7.1.1-21-Q16-x86-dll.exe"是一个专为32位Windows系统设计的图像处理工具,具备高色彩精度和灵活性,可用于多种图像处理任务,无论是简单的转换还是复杂的图像算法,都是开发人员和图像爱好者的...
ImageMagick-7.1.0-23-Q16-HDRI-x64-dll
**Tesseract OCR 3.02.02 ...总结来说,Tesseract OCR 3.02.02 是一个功能强大的开源OCR工具,尤其适用于英文和中文文本的识别。通过熟练掌握其安装、配置和使用方法,用户可以在各种场景下有效地自动化文本提取任务。
ImageMagick是一款强大的开源图像处理工具,用于在各种操作系统上创建、编辑、合成二值、灰度和彩色图像。这个软件包"ImageMagick-6.9.3-7-Q16-x86-dll"是针对x86架构的一个特定版本,其版本号为6.9.3-7,并且包含...
ImageMagick是一款强大的开源图像处理工具,广泛应用于各种操作系统,包括Windows、Linux和Mac OS X等。这个"ImageMagick-6.8.6-6.i386.zip"文件是一个针对32位(i386)系统的版本,包含了用于处理图像的各种命令行...
ImageMagick-6.9.2-1-Q16-x64-dll.exe
ImageMagick是一款强大的开源图像处理工具,用于在各种操作系统上创建、编辑、组合和转换位图图像。这个“ImageMagick-7-Q16-x64-dll完整安装包”显然是ImageMagick的一个特定版本,适用于64位系统,并且包含动态...
安装完成后,你就可以通过命令行工具使用ImageMagick了,例如用`convert`命令进行图像转换: ``` convert input.jpg output.png ``` 此外,开发人员可以利用提供的API在自己的程序中调用ImageMagick的功能,实现更...
在"ImageMagick-7.0.1-4-Q16-x64-dll.exe"文件中,包含了ImageMagick的可执行文件,用户可以直接运行来安装和使用这个软件。"Readme-说明.htm"则提供了关于安装、配置和使用软件的详细指导,包括任何特定版本的更新...
ImageMagick的核心是其内部使用的多种算法,这些算法负责图像的解析、编码、解码和渲染。例如,它采用了高效的色彩管理和色彩空间转换算法,确保了图像在不同格式间转换时的质量。同时,ImageMagick也支持透明度处理...
`LICENSE`文件通常包含软件的授权信息,对于ImageMagick来说,这可能是GPL、MIT或BSD等开源许可证,允许用户免费使用、修改和分发源代码。阅读此文件是了解软件使用条款的重要步骤。 `bin`目录包含可执行文件,这些...
ImageMagick-6.9.3-7-Q16-x64-dll.exe ,又要其他版本的可以私信我,我帮你找找看
apt-get install tesseract-ocr tesseract-ocr-deu tesseract-ocr-eng tesseract-ocr-fra tesseract-ocr-equ imagemagick scantailor pdftk 注意:可能需要在 wheezy 中启用 BACKPORTS 才能拥有最新的 scantailo
ImageMagick-6.8.9-6-Q16-x86-dll