导航:首页 > 源码编译 > ocrapp源码

ocrapp源码

发布时间:2024-01-22 15:31:07

‘壹’ OCR文字识别软件哪个易用可网上下载

OCR文字识别软件 Mini Ocr

xdowns.com/view_soft/3/7/OCRwenzishibieruanjian Mini Ocr.html



本软件是飞涛软件工作室开发的一款免费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是一个比较不错的选择。真诚地希望您在使用
中,能喜欢上它

‘贰’ 有没有微信小程序调用百度ai车辆识别接口的程序源码,很简单的就可以

class BaiDuAiBaseController extends BaseController
{
private $appid;
private $appKey;
private $secretKey;

public function __construct(){
$this->appid= config('api..appid');
$this->appKey = config('api..apikey');
$this->secretKey = config('api..secretkey');
}

//网络ai接口--文字识别--车牌号识别
public function getCarNumber($_imgurl,$_img=''){
$_token = $this->getToken();
$_url = 'https://aip.bce.com/rest/2.0/ocr/v1/license_plate?access_token='.$_token;
if($_img){
$_data = [
'image'=>$_img//图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/jpeg/png/bmp格式
];
}else{
$_data = [
'url'=>request()->domain().'/'.$_imgurl
];
}

$_res = json_decode(httpGet($_url,$_data),true);
//TODO 此处只返回false没有终止,是因为程序执行流程需要,后期可能要改
if(isset($_res['error_msg'])) return false;
return $_res['words_result']['number'];
}

//获取token
private function getToken(){
if(cache('_token')){
$_access_token = cache('_token');
}else{
$_url = 'https://aip.bce.com/oauth/2.0/token?grant_type=client_credentials&client_id='.$this->appKey.'&client_secret='.$this->secretKey;
$res = json_decode(httpGet($_url),true);
if(isset($res['error']))TApiException($res['error_description']);//终止程序并抛出异常
$_access_token = $res['access_token'];
$_expires_in = $res['expires_in'];
cache('_token',$_access_token,($_expires_in-1000));//我喜欢少存1000秒,没有为什么,问就是癖好
}
return $_access_token;
}
}

这是ThinkPhp5.1后端封装的网络AI接口类,getToken()获取凭证,getCarNumber()请求$_url 返回识别结果,这个是车牌号码识别,车型识别等其他接口大部分都一样,就换个请求地址$_url就行
//接口:
public function getImgCarNum(){
$_number = (new BaiDuAiBaseController())->getCarNumber(false,request()->param('img'));
return self::myShow('申请成功',['carNum'=>$_number]);
}
小程序端正常request请求上面的接口就行,下面是微信小程序拍照识别功能

//拍照
goImgSearch(){
uni.chooseImage({
count:1,
sizeType: ['compressed'],//original 原图,compressed 压缩
sourceType: ['album','camera'],//camera 相机 album相册
success:(r)=>{
console.log(r)
//执行识别车牌号码
this.img = r.tempFilePaths[0]
this.urlTobase64(r.tempFilePaths[0])
}
})
},
//识别车牌号码
urlTobase64(url){
uni.showLoading({
title:'拼命识别车牌中..'
})
//#ifdef MP-WEIXIN
uni.getFileSystemManager().readFile({
filePath: url, //选择图片时返回的路径
encoding: "base64",//这个是很重要的
success: res => { //成功的回调
//返回base64格式
let base64= 'data:image/jpeg;base64,' + res.data
//发送请求,识别车牌号码
this.$H.post('/getImgCarNum',{
img:base64 //图片数据
},{
token:true //必须登录
}).then((res)=>{
console.log(res.carNum)
if(!res.carNum){
uni.hideLoading()
return uni.showModal({
title:'识别失败',
content:'没能识别到车牌号码,请拍张清晰的图片再试哦,谢谢',
showCancel:false
})
}
uni.showToast({
title:'识别车牌成功',
icon:'none'
})
this.searchUser = res.carNum
this.userCarNum = res.carNum
uni.hideLoading()
}).catch((e)=>{
uni.hideLoading()
return uni.showModal({
title:'识别失败',
content:'没能识别到车牌号码,请拍张清晰的图片再试哦,谢谢',
showCancel:false
})
})
},
fail:(e)=>{
console.log(e)
}
})
//#endif
},

‘叁’ uniapp实现扫码OCR两功能的小程序开发到上线

1.HBuilderX 新建项目 因为做的功能简单 选了个纯洁的模板

2.新建路由先整个页面出来 代码如下 看不懂的去uniapp官网瞅瞅

https://uniapp.dcloud.io/api/README

3.上面扫码的功能完成了 就这么简单 下面是OCR 图片文字识别 用到网络的开发api 你需要注册个网络云账号 领取免费资源 新建任务 获取秘钥 才能使用 文字识别我用的是 vin识别能正常调用 其他好几个好像是并发限制 用不了

https://console.bce..com/ai/?_=1628820741533#/ai/ocr/app/create

4.HBuildX运行发布 新建小程序 微信开发者平台注册 获取appid

导入项目目录下的 unpackagedistdev到微信开发者工具打开

如果没有出现上传按钮 多半是appid和你微信开发者平台的不一样 以平台为准

5.点击上传 期间可以能会有各种各样的问题 网络都能找到 懒得写了

6.上传完事 去平台看看效果

7.这个修改的路径 就是小程序默认打开的页面

8.我是整的体验版 不用等审核就可以用手机打开访问了 当然了 这个时候你的小程序请求是发不出去的 要配置域名 如下改改就成

需要正式发布的 发布前导入build包 上传并提交审核就成了

开发中还有很多小问题 没列出来 有兴趣的私聊交流

需要源码。。。。

‘肆’ 4款各有特色的 文字识别 OCR App,助你办公一臂之力!

特点:支持批量扫描,多平台手机App

平台:

“白描”这款 App,我们以前有介绍过,我们还采访过它的开发者。

作为一款 iOS/安卓 上通吃的 App。“白描”是一款综合实力强劲的应用

和一些更轻量级的App相比,例如:“小嘿扫描”

“白描”则提供了“多语言翻译”以及“批量识别”之类额外的实用功能。

不过纯轻度使用或备用的话,“小嘿扫描”也是不错的选择。

“白描”的识别率和专业的文字识别“TextGrabber”之类相比不相上下。个人感觉,“白描”在中文识别率上更胜一筹。

例如:我扫描上面这本中文书籍某页时,“白描”可以正确显示出中文的段落标题,“TextGrabber”偶尔会走偏。

有些专业文字识别App需要昂贵的按月订阅,相较而言,“白描”基础版+高级版的收费方式,对于非重度用户而言,性价比就体现出来了。

其实,各款 OCR App 都各有千秋,完全可以按照各自偏好各取所需。“白描”恰好比较对我们胃口。

特点:网页应用,桌面办公理想选择

平台:

网址: http://app.xunjiepdf.com/ocrpart

这是一个网页应用,属于“迅捷 PDF 转换器”的一部分。

顾名思义,这个网页应用 除了图片转文字,还有不少 PDF 相关的处理。

“网页应用”的好处是在桌面级办公时非常方便,如果你在PC 或 Mac上已经有一堆扫描下来的图片文件,打开网页就能直接拖上去转换为文字,非常方便!

不过这种做法,缺点也很明显,上传到网站,可能会有一些“隐私顾虑”。

“迅捷”还提供了在线文档分享功能,如果是你的敏感文字内容,并不推荐上传分享。

特点:无需网络也可识别,私密性更强

平台:

既然说到“隐私顾虑”,那么这款 App主打的就是“私密性”。

“小度识字”无需网络也可识别你的图片文字,不用每次上传到云端,私密性更强,更适合在以下场景使用:

扫描有所顾虑的文字内容

手机信号不好甚至断网的情况下

作为代价,“小度识字”的功能性不如“白描”,例如:目前不能批量扫描。

特点:微信小程序, 方便顺手,功能强大

平台:

火箭君之前对“小程序”有一定误会,认为只不过是“网页”套一个壳子,功能性肯定会有折扣。

“拍图识字”这款“小程序”,让我有了新的认识。

考虑到越来越多的工作/生活场景,已经迁移到“微信”中,“小程序”则无需安装,微信内置,有种天然的“打开便利性”。

例如:

如果,我收到老板微信上发给我几张 收据/发票,要求登记一下。

当然,这时看着微信聊天的图片,用手打字登记也不是不可以。

但,这时直接在微信里打开一个“拍图识字”小程序,批量扫图,选中识别出的公司抬头,金额,用途,直接复制粘贴到文件里岂不是更好!

另外“拍图识字”还提供了一些“职场常用”的实用功能。

例如下面这些:

阅读全文

与ocrapp源码相关的资料

热点内容
要塞1地图放哪个文件夹 浏览:846
凡科建站怎么弄服务器 浏览:939
苹果手机怎么设置app播放 浏览:202
下载网站源码用什么浏览器 浏览:241
六线谱pdf 浏览:156
linuxmysqlsock 浏览:239
人教版数学pdf下载 浏览:460
文档安全加密系统 浏览:491
数控铣床编程简单数字 浏览:788
编程电缆如何重启 浏览:121
myqq命令行发消息 浏览:365
日产逍客怎么使用app升窗 浏览:503
安卓系统怎么快速删除微信内容 浏览:653
csharppython 浏览:409
程序员脖子按摩仪 浏览:562
小米桌面文件夹乱码怎么回事 浏览:858
点歌台app怎么连接 浏览:318
大学电脑编程学什么好 浏览:348
上哪里取消应用加密 浏览:172
电气控制与可编程控制器pdf 浏览:87