OCR软件--天若开源版操作设置
OCR软件--天若开源版操作设置
ocr 开源 ocr开源项目
天若OCR文字识别开源版
天若OCR开源版5.0
由于采用了第三方OCR接口, 所以必须联网才能识别 ,识别效果非常不错,不满意可以尝试换接口
无需安装直接可以使用
官网免费版不能自定义接口 ,建议用开源版
天若OCR最近会出现 该区域未发现文本 问题,是因为作者提供的百度接口过度使用导致的,解决方法如下:
不管是4.8 4.9还是5.0版本,问题一样,你需要修改为自己的接口。
登录百度云
点控制管理台
产品服务找到文字识别
点击创建应用
内容看着填,点确认,直到创建成功
点击应用列表查看应用详情,
获取API Key 和 Secret Key
将API Key 和 Secret Key 分别填入天若OCR的帐号和密码中,点击密钥测试,显示密钥通过
关键的一步,很多人没注意,用F4截屏识别后,还会出现 该区域未发现文本 ,在识别界面“右击”-接口(默认腾讯)-百度-中英再次截屏识别,正常。
文档识别--一款免费图片转文字App可将图片上的文字识别提取出来,生成可编辑的Txt文本文件,也可以上传至电脑进行进一步编辑。
微软OneNote2007--作为偶尔使用的基本的OCR工作,微软OneNote的光学字符识别功能可以节省不少时间。你可能忽略了它…叫做从图片中复制文本。
SimpleOCR--我使用微软的工具进行手写体识别时遇到的困难,可以在 SimpleOCR 找到可能的解决方案。不过这款软件对于手写体的识别只提供14天的免费试用,尽管机器打印的识别没有任何限制。
TopOCR--与典型的 OCR 软件有所不同,是专为数码相机(至少300万像素)和带有摄像头的手机设计。就像 SimpleOCR,它有两个窗口界面 – 原始图像窗口和文本 窗口。
FreeOCR--使用 Tesseract OCR 引擎。 Tesseract OCR 代码于1985到1995年间由惠普实验室开发,现在输入 Google。它被认为是最精确的开源 OCR 引擎之一。FreeOCR 是其底层代码的一个简单 Windows 界面。
得力OCR文字识别软件提供了把图片上的文字扫描成文本的功能,简称OCR。它即可识别印刷字体,也可识别手写字体。可以用它来扫描各种证件,如:身份证、银行卡、名片、驾驶证、行驶证、发票和营业执照等。它还具备拍照翻译的功能,支持多种外语,是旅游必备工具。
听学top 有个免费的ocr功能 听学top 是在线点读软件 有一个拍照点读功能 包含了ocr 挺好的
Quicker官方网址: scanner:App store 自行下载即可0:00 前序2:12 痛点分析2:49 OCR介绍3:34 Windoors 系统Quicker软件介绍8:34 MAC OS 系统 Text scanner 软件介绍10:01 结尾
手机端有全能扫描王,ocr识别,pdf输出,对比度设置,文字加黑等等应有尽有!
OCR和OpenCV的区别在于应用领域和功能。
OCR是一种光学字符识别技术,主要用于将印刷体或手写体文字转换为可编辑的电子文本。OCR技术可以应用于身份证、银行卡、发票等文本信息的识别。而OpenCV是一个开源的计算机视觉库,主要用于图像处理、分析和识别。OpenCV可以应用于人脸识别、目标跟踪、图像分割等领域。因此OCR和OpenCV的区别在于应用领域和功能。
虽然OCR和OpenCV都涉及到图像处理和识别,但是它们的应用领域和功能不同。
光学字符识别(Optical Character Recognition, OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。亦即将图像中的文字进行识别,并以文本的形式返回。
ocr的发展已经有了非常多的积累,一般人或者企业使用, 都是直接使用第三方的服务,目前提供第三方服务的大企业也非常多,百度,阿里云,腾讯等等,都提供了非常方便的api接口,可以进行调用,识别的速度、精确度和效果也都是非常不错的。唯一的缺点就是api的调用是需要收费的,对于调用频次不高的个人和企业,这个费用还是非常低的。
目前因为公司的现状,使用开源的有几个目的
目前针对ocr的相关开源项目也还是有不少的,作者正好是公司也需要类似的功能,所以做了一些简单的调研,在这里进行记录。
对于调研不准确的希望大家指出
Tesseract 是谷歌开发并开源的图像文字识别引擎,使用python开发。
所以针对目前公司的现状,放弃了这个项目的学习和调研
PaddleOCR 是百度开源的中文识别的ocr开源软件
EasyOCR 是一个用 Python 编写的 OCR 库,用于识别图像中的文字并输出为文本,支持 80 多种语言。
chineseocr
chineseocr_lite
TrWebOCR
cnocr
针对上面的比较讨论,同时根据现在的公司的情况和之前既定的一些目标,暂时选择最简单的cnocr进行学习和内部学习和使用。同时也针对目前cnocr仅仅是一个python包,而且无法通过接口进行调用的情况,做了一个补充项目 hn_ocr 。
目前放到github上面,欢迎大家一起学习和完善。
如何通过Tesseract开源OCR引擎创建Android OCR应用
要编译Android平台的Tesseract,需要使用Google提供的tesseract-android-tools。
代码获取方式:
git clone https://code.。
打开README,在命令行工具中执行下面的步骤:
cd
curl -O https://tesseract-ocr。googlecode.。com/files/tesseract-ocr-3.02.02.tar.gz
curl -O http://leptonica。googlecode。com/files/leptonica-1.69.tar.gz
tar -zxvf tesseract-ocr-3.02.02.tar.gz
tar -zxvf leptonica-1.69.tar.gz
rm -f tesseract-ocr-3.02.02.tar.gz
rm -f leptonica-1.69.tar.gz
mv tesseract-3.02.02 jni/com_googlecode_tesseract_android/src
mv leptonica-1.69 jni/com_googlecode_leptonica_android/src
ndk-build -j8
android update project --target 1 --path .
ant debug (release)
注意:如果你在使用NDK r9,编译的时候会出现错误:
format not a string literal and no format arguments [-Werror=format-security]
解决的方法就是在Application.mk中加入一行:
APP_CFLAGS += -Wno-error=format-security
编译之后会生成class.jar和一些*.so。
Android OCR Application
创建一个Android应用,把生成的jar和so导入进来。
创建TessOCR:
public class TessOCR {
private TessBaseAPI mTess;
public TessOCR() {
// TODO Auto-generated constructor stub
mTess = new TessBaseAPI();
String datapath = Environment.getExternalStorageDirectory() + "/tesseract/";
String language = "eng";
File dir = new File(datapath + "tessdata/");
if (!dir.exists())
dir.mkdirs();
mTess.init(datapath, language);
}public String getOCRResult(Bitmap bitmap) {
mTess.setImage(bitmap);
String result = mTess.getUTF8Text();
return result;
}public void onDestroy() {
if (mTess != null)
mTess.end();
}}
构造函数中需要在存储卡上创建一个目录tessdata,如果不创建程序运行就会出错。因为源码中会检测这个目录,不存在就抛出异常:
public boolean init(String datapath, String language) {
if (datapath == null) {
throw new IllegalArgumentException("Data path must not be null!");
}if (!datapath.endsWith(File.separator)) {
datapath += File.separator;
}File tessdata = new File(datapath + "tessdata");
if (!tessdata.exists() || !tessdata.isDirectory()) {
throw new IllegalArgumentException("Data path must contain subfolder tessdata!");
}return nativeInit(datapath, language);
}就这么简单。现在通过三种方式获取图片做OCR:
在图库中选取一张图,选择发送或者分享,选择OCR应用
在AndroidManifest.xml中加入IntentFilter,让OCR应用出现在图库的分享列表中:
获得URI之后,对URI解码,获取bitmap:
if (Intent.ACTION_SEND.equals(intent.getAction())) {
Uri uri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
uriOCR(uri);
}private void uriOCR(Uri uri) {
if (uri != null) {
InputStream is = null;
try {
is = getContentResolver().openInputStream(uri);
Bitmap bitmap = BitmapFactory.decodeStream(is);
mImage.setImageBitmap(bitmap);
doOCR(bitmap);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
}}
}启动OCR应用,从图库中选择一张图做OCR
发送Intent调用图库,在onActivityResult中获取返回的URI做OCR:
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, REQUEST_PICK_PHOTO);
启动OCR应用,拍照之后做OCR
为了获取高质量的图片,在Intent中加入图片路径。返回之后就可以直接使用这个图片路径解码:
private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// Ensure that there's a camera activity to handle the intent
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
// Create the File where the photo should go
File photoFile = null;
try {
photoFile = createImageFile();
} catch (IOException ex) {
// Error occurred while creating the File
}// Continue only if the File was successfully created
if (photoFile != null) {
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(photoFile));
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
}}
}最后不要忘记下载语言包,并push到存储卡的tessdata目录下。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。