CSharp在Linux上使用Tesseract-OCR

CSharp在Linux上使用Tesseract-OCR

 

1 主要思路

在Linux环境中使用ASP.NET Core调用Tesseract OCR引擎可以按照以下步骤进行操作:

 

1 确保你已经在Linux上安装和配置了Tesseract OCR引擎。

2 在你的ASP.NET Core项目中,使用NuGet包管理器或dotnet命令行工具将Tesseract包添加到项目中.

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.0leptonica-1.82.0

下载好之后,上传到linux服务器上的新目录中,比如:/custorm_app

2.2 安装

依次执行以下命令

cd /custorm_app
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 /custorm_app/1.png output -l chi_sim

参数说明:

/custorm_app/1.png : 是要识别的图片文件

output : 是识别后的文本(/custorm_app/output.txt)

chi_sim : 用到的语言包

3 部署项目

3.1 添加引用

在nuget 里面 查找 tesseract ,添加到项目中,版本是5.2.0

3.2 读取图片

using Tesseract;

var path = AppDomain.CurrentDomain.BaseDirectory+"1.png"; //图片路径
var datapath = "tessdata"; //数据目录
var language = "chi_sim"; //语言
//调用tesseract实现OCR识别
using (var engine = new TesseractEngine(datapath, language, EngineMode.Default))
    {
        using (var img = Pix.LoadFromFile(path))
        {
            using (var page = engine.Process(img))
            {
                Console.WriteLine( page.GetText());
            }
        }
    }

Console.ReadKey();

项目目录结构

注意:tessdata目录中的文件,来源于第2.4步骤 的下载

 

3.3 补齐linux上需要的文件

项目部署到linux上后,还需要在 x64 目录中增加两个文件:

libleptonica-1.82.0.solibtesseract50.so

这两个文件需要从linux服务器上的

/usr/lib/x86_64-linux-gnu/libleptonica.so 和 /usr/local/lib/libtesseract.so

复制过来,然后改名。

 

 

posted @ 2023-08-22 09:37  H辉  阅读(337)  评论(0编辑  收藏  举报