跨平台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

posted @   iNeuOS工业互联网系统  阅读(465)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示