社区应用 社区服务 会员列表 统计排行
主题 : 可以把图片格式变成文字格式的绿色软件
曦瞳 离线
级别: 橘园贵宾

UID: 260
精华: 8
发帖: 1490
橘果: 13160 颗
威望: 2087 点
光辉成就: 0 分
在线时间: 1894(时)
注册时间: 2007-01-06
最后登录: 2024-05-06
0  发表于: 2008-04-21  

可以把图片格式变成文字格式的绿色软件

管理提醒: 本帖被 asianh 执行加亮操作(2009-04-01)
关于Mini Ocr 软件
 
  本软件是飞涛软件工作室开发的一款免费Ocr软件,主要用于识别图像文件之中,出现
的汉字显示字体。Ocr的中文含意是光学字符识别。
  为什么叫Mini呢?因为现有的识别汉字的商业Ocr软件,动辄二三十兆,而本软件解
压后,也不过三兆多,身材比较纤小,再加上本软件主要用于识别字体比较小的汉字,所
以叫Mini,中文的发音是“迷你”,中文含义是超小型。


既然有了商业Ocr软件,为什么还要开发这个软件?
 
  不同于商业Ocr软件,本软件是免费的,可以自由使用。第二个不同之处,本软件的
识别对象是屏幕出现的“显示汉字”,而不是针对扫描仪扫出来的“打印汉字”。二者有什
么不同呢?最重要的一点: 扫描出来的打印汉字的高度和宽度一般都在30多个像素点之
上,这是我用画图软件,打开某个商业Ocr的samples\sample1.tif,然后一点一点数出
来的。从文件名和目录名的中文含意可以看出,这个点数应该是一个典型值。那么,如果
用商业Ocr识别屏幕上出现的小五号字,汉字的高度是12个像素点,会出现什么情况呢?
测试方法:用记事本随便写几行汉字,设置字体为小五号字。这大概是看着还算舒服
的最小号的汉字字体了(高度是12个像素点),如果再小,字体就很难看了。然后,按拷
屏键PrtSc,把屏幕的图像拷贝、粘贴到画图软件中,修剪尺寸后,保存为bmp的格式。
然后,我找了两个国内最著名的Ocr软件进行测试,结果让人大吃一惊,识别率几乎为零。
把图像放大两倍,再测试,结果仍然很不理想,大概也只有百分之二三十的样子。


开发Mini Ocr软件的由来
 
  我在开发护花使者反黄图像识别软件的时候,遇到有些图像里,嵌有某些文字,如果能
把文字识别出来,图像的含义就很容易让计算机理解了。预算有限,我连扫描仪都舍不得
买,就更别想买商业Ocr的开发包了,大概几十万,或者更多,或者别人压根就不卖。况且
它们的识别率对小字体几乎为零,不符合我的要求。看来,只好自力更生,重新写一个了。


开发Mini Ocr的历程
 
  经过三个多月的努力,终于诞生了这款Mini Ocr 软件。第1个月做出了汉字识别的
核心模块,第2个月做出了文章段落切分的算法,并加入了对英文,数字,标点的支持,
第三个月继续调整英汉混排和汉字切分的算法,并用MFC 做了一个界面。


Mini Ocr的软件架构
  
  为了让更多的人能使用到这个软件,我在windows系统下,采用VC进行编程,界面当
然只好用MFC写了。软件架构是一个SDI框架下的多窗口切分界面,左上角的窗口是一个
CFormView,用来显示常用的按钮;左下角是一个CEditView,用来显示帮助信息;右上角
是一个CView,用来显示要识别的图像;右下角是一个CEditView,用来存放识别出来的文
字。识别部分采用了工作者线程,以避免显示界面的主线程僵掉。识别部分是整个软件的
核心,与操作系统无关,可以单独摘出来放在dos窗口里跑,也可以移植到Linux系统中跑。


汉字识别软件的难点所在:

  英文识别有一些开放源码的软件,我看过的软件,主要采取两种识别方法:基于规则
的方法,和采用神经网络方法。而这两种方法,在识别汉字时,都不宜采用。因为汉字数
目众多,最常用的国标2312的一级汉字就有3755个。如果借用基于规则的方法,需要对
三千多个汉字,逐一人工写出分类规则,工作量太大,我一个人无法完成;如果采用神经
网络的方法,这么多汉字,我不敢想象,需要多少层网络和神经节点呀!如果采用网格法,
抗位移的效果太差;而采用不变矩法,识别人和入,土和士,相似度又难于控制。除此之
外,汉字切分也是一大难题。英文宽度大概只有汉字一半,标点符号大概只有汉字三分之
一宽,数字大概只有四分之一的宽度。而汉字本身又有二分字,和三分字。某些字,如“啊”,
字体小时可能是独体字,字体大些,变为二分字,字体再大,又变为三分字。加上汉字与
汉字之间的粘连、汉字与英文的混排,英文与英文的粘连,造成汉字切分模块的算法,甚
至比汉字识别模块的算法还要复杂得多。为了克服这些难点,并加快识别速度,我在算法
设计时,采用了一些优化和简化的策略。经过实践检验,证明行之有效。

Mini Ocr进行汉字识别的策略:
1) 采用复合特征的分类方法。
2) 字符集选择3755个一级汉字。
3) 字体选择最常用的宋体。
4) 字号选择从小五号到一号汉字,主要针对20个点之内的小字体。
5) 英汉混排时,汉语优先。
6) 汉字粘连时,进行动态优化切分。

展望与下一步的开发计划:
1) 重新优化英文识别的算法;
2) 对英文粘连的切分算法进行调整;
3) 移植进入Linux;


选择Ocr软件的建议:
 
  如果您选择Ocr软件,目的是用来识别扫描仪出来打印字体,推荐还是选用知名的商业Ocr。
如果您要识别屏幕上显示的汉字,Mini Ocr是一个比较不错的选择。真诚地希望您在使用
中,能喜欢上它。
[ 此贴被曦瞳在2008-04-21 14:11重新编辑 ]
附件: OCR文字识别软件 Mini Ocr.part1.rar (1424 K) 下载次数:37 累计下载获得 橘果
附件: OCR文字识别软件 Mini Ocr.part2.rar (1404 K) 下载次数:137 累计下载获得 橘果
仪歌 离线
级别: 橘园贵宾

UID: 41126
精华: 7
发帖: 14079
橘果: 24517 颗
威望: 2953 点
光辉成就: 2 分
群组: 腹黑大本营
在线时间: 3539(时)
注册时间: 2008-01-30
最后登录: 2024-03-08
1  发表于: 2008-04-21  
呃……
我是外行,好像看不懂……


歌少の文→浮生若梦
萧忧蓝 离线
级别: 冰雪之王
UID: 50593
精华: 0
发帖: 1172
橘果: 4018 颗
威望: 4072 点
光辉成就: 0 分
在线时间: 1452(时)
注册时间: 2008-03-28
最后登录: 2024-04-30
2  发表于: 2008-04-21  
有这样的软件真是太好了,谢谢楼主的推荐。
曦瞳 离线
级别: 橘园贵宾

UID: 260
精华: 8
发帖: 1490
橘果: 13160 颗
威望: 2087 点
光辉成就: 0 分
在线时间: 1894(时)
注册时间: 2007-01-06
最后登录: 2024-05-06
3  发表于: 2008-04-22  
引用
引用第1楼仪歌2008-04-21 15:02发表的:
呃……
我是外行,好像看不懂……


这个软件很简单,不会看不懂吧
仪歌 离线
级别: 橘园贵宾

UID: 41126
精华: 7
发帖: 14079
橘果: 24517 颗
威望: 2953 点
光辉成就: 2 分
群组: 腹黑大本营
在线时间: 3539(时)
注册时间: 2008-01-30
最后登录: 2024-03-08
4  发表于: 2008-04-28  
曦瞳别汗了……
是因为偶是电脑白痴的缘故……

呵呵


歌少の文→浮生若梦
gaoyu_zf 离线
级别: 幻影射手
UID: 5772
精华: 0
发帖: 112
橘果: 5767 颗
威望: 405 点
光辉成就: 0 分
在线时间: 96(时)
注册时间: 2007-03-28
最后登录: 2018-03-24
5  发表于: 2008-04-29  
手写体汉字图片也可识别吗?
曦瞳 离线
级别: 橘园贵宾

UID: 260
精华: 8
发帖: 1490
橘果: 13160 颗
威望: 2087 点
光辉成就: 0 分
在线时间: 1894(时)
注册时间: 2007-01-06
最后登录: 2024-05-06
6  发表于: 2008-05-07  
引用
引用第5楼gaoyu_zf2008-04-29 14:01发表的:
手写体汉字图片也可识别吗?


不太清楚,你试试吧,我知道四月天的VIP图片就识别不了