ngaut
asm/c/c++/......
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(26)
给我留言
查看公开留言
查看私人留言
随笔分类
(128)
.net winform(1)
(rss)
asio(8)
(rss)
c/c++/ds(47)
(rss)
calculus
(rss)
Compilers:Principles,Techniques,and Tools (21)
(rss)
os study(1)
(rss)
others(50)
(rss)
随笔档案
(169)
2011年5月 (2)
2011年1月 (1)
2010年11月 (1)
2010年9月 (4)
2010年8月 (1)
2010年7月 (1)
2010年6月 (1)
2010年5月 (2)
2010年4月 (3)
2010年3月 (2)
2010年2月 (4)
2010年1月 (1)
2009年12月 (2)
2009年11月 (1)
2009年10月 (2)
2009年9月 (3)
2009年8月 (4)
2009年5月 (1)
2009年4月 (1)
2009年2月 (2)
2008年12月 (2)
2008年10月 (4)
2008年9月 (2)
2008年8月 (3)
2008年7月 (4)
2008年6月 (2)
2008年5月 (1)
2008年4月 (4)
2008年3月 (9)
2008年2月 (5)
2008年1月 (2)
2007年12月 (6)
2007年11月 (3)
2007年10月 (2)
2007年8月 (1)
2007年7月 (1)
2007年6月 (3)
2007年5月 (1)
2007年4月 (9)
2007年3月 (1)
2007年2月 (11)
2007年1月 (1)
2006年12月 (3)
2006年11月 (4)
2006年10月 (3)
2006年9月 (6)
2006年8月 (4)
2006年7月 (10)
2006年6月 (3)
2006年5月 (5)
2006年4月 (2)
2006年3月 (1)
2006年1月 (2)
2005年12月 (10)
文章分类
NetWork
(rss)
文章档案
(3)
2008年10月 (2)
2008年4月 (1)
others
.net 设计模式牛人
da hua xi you
hzbairly的专栏
先瞄准目标市场再研发产品
linux内核
linux内核
linux牛人,调侃风格
经典
os 教程
os开发教程
Winter实验室
某牛
用MSVC开发os
用MSVC开发os
something special
http://vm-kernel.org/blog/
vm and kernel
joshua_yu
网络牛人
垃圾堆
安全高手
经典的c/c++
absurd的专栏
C++ 有价值blog索引(不断更新)
C++ 有价值blog索引
cppblog的猛男
cppblog的猛男
cppreference
c/c++ standard library reference
crazy-bit
不论你在什么时候开始,重要的是开始之后就不要停止。 不论你在什么时候结束,重要的是结束之后就不要悔恨
guanwl的专栏
c++仿基因编程
junguo的专栏
设计模式
leotangcw的专栏
some resource aboutwinpcap
linux大牛
linux大牛,也精通windows的说
ralph623的专栏(c++高人)
c++高人
寒星轩
c++高手
熊春雷的专栏
c/c++/flex/bison
一雨田的专栏
设计模式和网络编程
又一个内核的大牛
搜索
积分与排名
积分 - 392812
排名 - 60
最新评论
1. re: 当asio::async_read与socket的async_read_some的区别
多个客户端同时发送数据,m_packet不会出问题?这个读取是多线程的还是单线程的呢?
--xgg
2. re: 当asio::async_read与socket的async_read_some的区别
谢谢大哥的博客,看了你的这篇文章的时间,很是崇拜您
--杨立平
3. re: 二叉树的遍历:前序,中序输出有点问题,但是不知道到怎么修改,想请教各位大神
评论内容较长,点击标题查看
--呆呆笨笨的孩纸
4. re: 二叉树的遍历:前序,中序,后序,层序--包括递归和非递归实现
我自己写的
http://lk1ngaa7.cf/?p=318
--lking
5. re: 解决unresolved external symbol "public: int __thiscall CWnd::KillTimer(unsigned int)" (?KillTimer@CWnd@@QAEHI@Z)问题
评论内容较长,点击标题查看
--lebesgue06
阅读排行榜
1. 二叉树的遍历:前序,中序,后序,层序--包括递归和非递归实现(91509)
2. 解决error C2011: 'fd_set' : 'struct' type redefinition问题(16370)
3. 介绍一款国产开源C编译器(14325)
4. 解决unresolved external symbol "public: int __thiscall CWnd::KillTimer(unsigned int)" (?KillTimer@CWnd@@QAEHI@Z)问题(13213)
5. Database disk image is malformed 解决办法(10998)
评论排行榜
1. 二叉树的遍历:前序,中序,后序,层序--包括递归和非递归实现(21)
2. 《自己动手写嵌入式操作系统》源代码(14)
3. 看了两天boost::asio网络库相关的资料,写了个小程序用异步tcp方式来传文件,果然高效,速度稳定在10M/s左右(13)
4. 前段时间做的部分笔试题和答案(提醒自己)(9)
5. 最近写了个小工具,自动往代码里面加入垃圾代码(9)
Powered by:
博客园
模板提供:
沪江博客
|
首页
|
发新随笔
|
发新文章
|
联系
| |
管理
[转]开源的命令行OCR软件──tesseract
开源的命令行OCR软件──tesseract
tesseract-ocr
是一个跨平台开源的OCR
软件
(Optical Character Recognition,光学字符识别),它历史悠久,早期是HP实验室的项目,现
托管
于
google
code。
大部分常用的linux发行版,应该都在源里包含了此软件,所以ubuntu下只需要 sudo apt-get install tesseract-ocr tesseract-ocr-eng 就可以安装了,注意必须安装 tesseract-ocr-eng 这个是识别英文字符所必须的
数据
文件。而在ubuntu下,也只需要 emerge app-text/tesseract 就可以了,但是也必须给这个包添加 linguas_en 这个use,才会安装所需要的数据文件。
- R I/ Q6 V N- Y* Z# r
关于数据文件,还得交代一下,其实tesseract在2.0版以后,已经有了学习能力了,如果你想提高某个字体的识别率,或者识别不在默认语言包里的UTF-8字符(比如中文)的话,可以安装
这个方法
来训练出自己的数据文件。
& W7 ?, @% i- L/ t' D: X
这个OCR软件能干嘛呢?典型地
应用
就是识别验证码,哈哈。所以以这个为例,来介绍一下使用方法,先来看看这几个验证码(可“图片另存为”,然后自行测试):
6 D; W: L7 G. s: H' Y4 y/ \
这几个都是用默认的数据文件能正确识别的例子,由于tesseract只识别tiff格式的图片文件,所以识别之前,需要将图片先转成tif格式,具体如下:
$ convert cnblogs.com.jpe ppm:- | ppm2tiff yzm.tif $ tesseract yzm.tif out Tesseract Open Source OCR
Engine
$ cat out.txt 1750
* i' [/ G+ a' U
同时,也有些比较难的验证码,是程序不能正确识别的,如下几个就是例子:
虽然识别的正确性不是非常高,但是已经很不错了,哈哈。
发表于 2010-02-22 13:44
ngaut
阅读(3818)
评论(1)
编辑
收藏
引用
评论
#
re: [转]开源的命令行OCR软件──tesseract
回复
更多评论
我是此文的作者,你转发能标下出处么?还盗链图片
刷新评论列表
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理