跨平台Windows和Linux(银河麒麟)操作系统OCR辨认应用

打印 上一主题 下一主题

主题 980|帖子 980|积分 2940

1 运行效果

    代码下载链接: https://pan.baidu.com/s/1NUfLTjk6kzXJKsaH7yo4qA?pwd=rk5c 提取码: rk5c。

    在银河麒麟桌面操作系统V10(SP1)上运行OCR辨认效果如下图:


2 在Linux上安装Tesseract OCR引擎
2.1 下载tesseract-ocr和leptonica
  1. https://codeload.github.com/tesseract-ocr/tesseract/tar.gz/5.2.0
  2. http://www.leptonica.org/source/leptonica-1.82.0.tar.gz
复制代码
以上是在欣赏器上下载,用linux的wget方式下载
  1. wget https://github.com/tesseract-ocr/tesseract/archive/5.2.0.tar.gz
  2. 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 安装

依次执行以下命令
  1. cd /home/wxzz
  2. tar -xvf leptonica-1.82.0.tar.gz
  3. cd leptonica-1.82.0
  4. ./configure
  5. make
  6. make install
  7. apt install  automake
  8. apt install  libtool
  9. tar -xvf tesseract-5.2.0.tar.gz
  10. cd tesseract-5.2.0
  11. ./autogen.sh
  12. ./configure
  13. make
  14. make install
  15. sudo ldconfig
复制代码
2.3 配置环境变量
  1. /*打开文件*/
  2. vim /etc/profile
  3. /*在文件末尾添加*/
  4. export LD_LIBRARY_PATH=/usr/local/lib
  5. export LIBLEPT_HEADERSDIR=/usr/local/include
  6. export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
  7. export TESSDATA_PREFIX=/usr/local/share/tessdata
  8. /*立即生效*/
  9. source /etc/profile
复制代码
2.4 下载语言包
  1. //中文简体
  2. https://raw.githubusercontent.com/tesseract-ocr/tessdata/4.00/chi_sim.traineddata
  3. //英文
  4. https://raw.githubusercontent.com/tesseract-ocr/tessdata/4.00/eng.traineddata
复制代码
目前最新版本是 4.00,将下载好的语言包上传到linux服务器指定目次中:/usr/local/share/tessdata

2.5 测试是否安装成功
  1. tesseract --version
复制代码
假如安装成功,如下图:


2.6 测试读取图片内容
  1. 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#实现的代码如:
  1. using Tesseract;
  2. namespace LinuxOCR
  3. {
  4.     internal class Program
  5.     {
  6.         static string testImagePath = "ocr.png";
  7.         static void Main(string[] args)
  8.         {
  9.             string textResult = String.Empty;
  10.             using (var engine = new TesseractEngine("tessdata", "eng", EngineMode.Default))
  11.             {
  12.                 using (var img = Pix.LoadFromFile(testImagePath))
  13.                 {
  14.                     using (var page = engine.Process(img))
  15.                     {
  16.                         textResult= page.GetText();
  17.                     }
  18.                 }
  19.             }
  20.             Console.WriteLine("识别结果:"+textResult);
  21.             Console.ReadLine();
  22.         }
  23.     }
  24. }
复制代码
项目工程目次结构,如下图:


注意:在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



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

滴水恩情

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表