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.0 和 leptonica-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.so 和 libtesseract50.so
这两个文件需要从linux服务器上的
/usr/lib/x86_64-linux-gnu/libleptonica.so 和 /usr/local/lib/libtesseract.so
复制过来,然后改名。