跨平台Windows和Linux(银河麒麟)操作系统OCR识别应用
1 运行效果
代码下载链接: https://pan.baidu.com/s/1NUfLTjk6kzXJKsaH7yo4qA?pwd=rk5c 提取码: rk5c。
在银河麒麟桌面操作系统V10(SP1)上运行OCR识别效果如下图:

2 在Linux上安装Tesseract OCR引擎
2.1 下载tesseract-ocr和leptonica
https://codeload.github.com/tesseract-ocr/tesseract/tar.gz/5.2.0
http://www.leptonica.org/source/leptonica-1.82.0.tar.gz
以上是在浏览器上下载,用linux的wget方式下载
wget https://github.com/tesseract-ocr/tesseract/archive/5.2.0.tar.gz
wget http://www.leptonica.org/source/leptonica-1.82.0.tar.gz
注意版本号:使用的是tesseract.5.2.0 和 leptonica-1.82.0
下载好之后,上传到linux服务器上的新目录中,比如:/home/wxzz
2.2 安装
依次执行以下命令
cd /home/wxzz
tar -xvf leptonica-1.82.0.tar.gz
cd leptonica-1.82.0
./configure
make
make install
apt install automake
apt install libtool
tar -xvf tesseract-5.2.0.tar.gz
cd tesseract-5.2.0
./autogen.sh
./configure
make
make install
sudo ldconfig
2.3 配置环境变量
/*打开文件*/
vim /etc/profile
/*在文件末尾添加*/
export LD_LIBRARY_PATH=/usr/local/lib
export LIBLEPT_HEADERSDIR=/usr/local/include
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
export TESSDATA_PREFIX=/usr/local/share/tessdata
/*立即生效*/
source /etc/profile
2.4 下载语言包
//中文简体
https://raw.githubusercontent.com/tesseract-ocr/tessdata/4.00/chi_sim.traineddata
//英文
https://raw.githubusercontent.com/tesseract-ocr/tessdata/4.00/eng.traineddata
目前最新版本是 4.00,将下载好的语言包上传到linux服务器指定目录中:/usr/local/share/tessdata
2.5 测试是否安装成功
tesseract --version
如果安装成功,如下图:

2.6 测试读取图片内容
tesseract ocr.png output -l chi_sim
可能会报错提示,看一下实际有没有文件输出。参数说明:
ocr.png : 是要识别的图片文件
output : 是识别后的文本(output.txt)
chi_sim : 用到的语言包
3 部署项目
3.1 添加引用
新建一个NET6的项目工程,在nuget 里面 查找tesseract,添加到项目中,版本是5.2.0,如下图:

3.2 读取图片文字
C#实现的代码如:
using Tesseract;
namespace LinuxOCR
{
internal class Program
{
static string testImagePath = "ocr.png";
static void Main(string[] args)
{
string textResult = String.Empty;
using (var engine = new TesseractEngine("tessdata", "eng", EngineMode.Default))
{
using (var img = Pix.LoadFromFile(testImagePath))
{
using (var page = engine.Process(img))
{
textResult= page.GetText();
}
}
}
Console.WriteLine("识别结果:"+textResult);
Console.ReadLine();
}
}
}
项目工程目录结构,如下图:

注意:在bin\Debug\net6.0目录下有一个tessdata目录,其中的文件,来源于第2.4步骤的下载。
3.3 补齐linux上需要的文件
项目部署到linux上后,还需要在x64目录中增加两个文件:libleptonica-1.82.0.so和libtesseract50.so,把这两个文件需要从linux服务器上的文件路径复制到自己的工程中:/usr/lib/x86_64-linux-gnu/libleptonica.so 和 /usr/local/lib/libtesseract.so,并且把文件名分别改为:libleptonica-1.82.0.so和libtesseract50.so。发布后的x64目录中,然后改名如下图:
4.运行
工程发布到publish目录后,在麒麟操作上运行dotnet LinuxOCR.dll,效果如下图:
物联网&大数据技术 QQ群:54256083
物联网&大数据项目 QQ群:727664080
QQ:504547114
微信:wxzz0151
博客:https://www.cnblogs.com/lsjwq
微信公众号:iNeuOS

跨平台Windows和Linux(银河麒麟)操作系统OCR识别应用的更多相关文章
- 国产化之虚拟ARM64-CPU安装银河麒麟操作系统
背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟v4,CPU使用飞腾处理器.我本地没有这个国产的处理器,但飞腾是基于ARMv8架构的64位处理器,所以理论上基于这个CPU架构的硬件应 ...
- 银河麒麟操作系统U盘手动挂载,出现乱码
使用银河麒麟操作系统,U盘手动挂载,U盘中中文字符显示为乱码?? 对于银河麒麟操作系统的这一问题,可能是因为字符集的原因,需要在mount后加参数: sudo mount –o iochar ...
- 银河麒麟操作系统打开VMware报vmmon无法编译
使用银河麒麟操作系统打开VMware可能会报vmmon无法编译 这个时候... 将/usr/src/linux-headers-xxx/include/miscdevice.h第71行void改为in ...
- 发行版Linux和麒麟操作系统下netperf 网络性能测试
Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输.Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求 ...
- 飞腾1500A 上面银河麒麟操作系统 进行远程以及添加用户的方法 linux xrdp
1. 安装远程用的软件: sudo apt-get install xrdp vnc4server xbase-clients systemctl enable xrdp systemctl star ...
- 企业实践 | 国产操作系统之光? 银河麒麟KylinOS-V10(SP3)高级服务器操作系统基础安装篇
[点击 关注「 全栈工程师修炼指南」公众号 ] 设为「️ 星标」带你从基础入门 到 全栈实践 再到 放弃学习! 涉及 网络安全运维.应用开发.物联网IOT.学习路径 .个人感悟 等知识分享. 希望各位 ...
- [转帖]银河麒麟Kydroid 2.0全新发布:原生支持海量安卓APP
银河麒麟Kydroid 2.0全新发布:原生支持海量安卓APP https://news.cnblogs.com/n/652299/将手机操作系统 转移到 桌面 跟chromebook 类似的策略吧 ...
- 国产化之银河麒麟安装达梦数据库DM8
背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,数据库使用DM8. 虽然在之前的文章中已经成功模拟国产飞腾处理器,但是运行效率不高,所以这里的银河麒麟操作系统还是运行在x64平台上 ...
- 银河麒麟V10安装ASP.NET Core并配置Supervisor让网站开机自动运行
银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化.云计算.大数据.工业互联网时代对主机系统可靠性.安全性.性能.扩展性和实时性的需求,依据CMMI 5级标准研制的提供内生安全.云原生支 ...
- 开源即时通讯GGTalk 8.0发布,增加Linux客户端,支持在统信UOS、银河麒麟上运行!
GGTalk在2021年推出7.0后,经过一年多时间的开发,终于推出8.0版本,实现了Linux客户端. 这几年,信创国产化的势头越来越猛,政府事企业单位都在逐步转向使用国产OS.国产CPU.国产数据 ...
随机推荐
- GraphQL Part VII: 实现数据变更
我们已经可以使用各种方式来获取数据了.但是如何修改服务器端的数据呢?包括数据插入,修补,删除或者更新等等.GraphQL 的 mutation 就是负责这部分的. 在我们继续之前,我想对项目做一点调整 ...
- HarmonyOS Next 入门实战 - 关系型数据库、smartdb
SQLite数据库 HarmonyOS的关系型数据库基于SQLite 导入模块 import { relationalStore } from '@kit.ArkData'; 实现步骤: 获取RdbS ...
- 一次 Spring 扫描 @Component 注解修饰的类坑
问题现象 之前遇到过一个问题,在一个微服务的目录下有相同功能 jar 包的两个不同的版本,其中一个版本里面的类有 @Component 注解,另外一个版本的类里面没有 @Component 注解,且按 ...
- Qt开发经验小技巧206-210
有时候需要对文本进行分散对齐显示,相当于无论文字多少,尽可能占满整个空间平摊占位宽度,但是在对支持对齐方式的控件比如QLabel调用 setAlignment(Qt::AlignJustify | Q ...
- error C2065: “CV_DATA_AS_ROW”: 未声明的标识符
ce_dect\main_face.cpp(117): error C2065: "CV_DATA_AS_ROW": 未声明的标识符将 "CV_PCA_DATA_AS_R ...
- [转]CUDA,NVIDIA Driver,Linux,GCC之间的版本对应关系表格
在安装CUDA时一定要注意其与英伟达显卡驱动以及Linux系统和GCC版本的对应关系,如果版本之间不匹配,是安装不成功的. 一.CUDA与Driver的对应版本 参考链接:https://docs.n ...
- VS2008新建MFC程序时提示:当前页面的脚本发送错误 不是有效的Win32应用程序的解决办法
错误现象: 解决方案: 1.根据错误信息中的url,找到对应文件夹下的htm文件 2.使用notepad++打开default.htm文件,找到错误提示地方,注释掉其中两句语句,如433和434行所示 ...
- Github + Jekyll 搭建项目wiki
网站托管 创建新仓库 创建以自己名字为前缀, .github.io为后缀的仓库 在仓库的Settings中的Pages里设置Build and deployment为Github Actio ...
- 前端学习openLayers配合vue3(圆形形状的绘制)
上节课我们学了加载了矢量图片,这节我们来学绘制圆形 关键代码,第一段呢是设置圆点的操作,第二步是点击地图获取地图位置来设置圆点,ol还有很多类,各种形状的 //设置圆点 // let anchorLa ...
- 谈谈flutter的线程
本文同步发布于公众号:移动开发那些事谈谈flutter的线程 刚接触flutter的同学肯定会对fluter所谓的单线程架构很蒙逼,因为这与我们学开发时,各种语言里的多线程的介绍有点出入,而且手机的C ...