首页 > 系统相关 >CSharp在Linux上使用Tesseract-OCR

CSharp在Linux上使用Tesseract-OCR

时间:2023-08-22 09:45:00浏览次数:39  
标签:OCR tar linux leptonica Linux Tesseract tesseract

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

复制过来,然后改名。

 

 

标签:OCR,tar,linux,leptonica,Linux,Tesseract,tesseract
From: https://www.cnblogs.com/xiaonanmu/p/17647691.html

相关文章

  • tensorflow模型训练保存minist OCR
    importtensorflowastffromtensorflow.python.framework.convert_to_constantsimportconvert_variables_to_constants_v2fromtensorflow.python.toolsimportoptimize_for_inference_libimportnumpyasnpimportmatplotlib.pyplotaspltimportdatetimeimpor......
  • C# OCR光学识别深度学习框架PaddleOCRSharp使用介绍
    PaddleOCRSharp是一个基于PaddlePaddle深度学习框架的OCR(光学字符识别)库的C#封装。它提供了一种方便的方式来进行文字检测、文本识别和版面分析等任务。下面是PaddleOCRSharp的使用方法的详细介绍:一、安装PaddleOCRSharpPaddleOCRSharp可以通过NuGet包管理器进行安......
  • linux 单网卡双IP设置
    [root@xinyin-redis-mq-1~]#vim/etc/sysconfig/network-scripts/ifcfg-ens192TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="none"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT=......
  • linux那些事之页迁移(page migratiom)
    Pagemigration页迁移技术是内核中内存管理的一种比较重要的技术,最早该技术诞生于NUMA系统中(Pagemigration[LWN.net]),后续由于内存规整以及CMA和COW技术的出现,也需要用到页迁移技术,逐渐称为内核内存子系统中占有比较重要地位。页迁移在NUMA系统中的应用NUMA系统中,每个cpu运行......
  • Linux Apache2如何开启SSL https 443
    对于新手来说,配置SSL似乎是意见很麻烦的事情。首先ssl、https是什么,如何生成证书,如何生成可信任的证书(https打开为绿色无警告)。他们默认使用443端口,也可以手动配置为其他端口。apache系的配置文本文件又鬼™麻烦,看都看不懂。最头疼的是,不同的lamp平台,设置的地方还不一样。这里......
  • 关于Azure-存储账户-SMB-CIFS文件共享-在Linux系统中的挂载
    笔者在自己Azure平台创建了一个【标准】性能,即StorageV2类型的存储账户、然后在其下创建了一个文件共享CIFS注意:标准存储账户中的【文件共享】,只能创建基于SMB协议的文件共享如果要创建NFS文件共享,只能在创建存储账户时,【性能】处选择,高级,文件共享,才能同时支持CIFS和NFS 这......
  • 模拟Linux文件管理员系统-shell实现
    模拟Linux文件管理员系统-shell实现注:此脚本仅供学习使用,具体需要根据实际情况进行测试调整。1系统要求2脚本执行效果2.1管理员登录效果2.2普通用户登录效果2.3密码文件格式用空格隔开,从左往右依次为:用户名密码是否为管理员(1为管理员0为普通用户)是否被锁定(1......
  • 如何在 Linux 上使用对拍
    和Windows差不多,你需要以下几个文件:我们依次来看里面都有什么:bf.cpp:这个cpp是用来使用暴力得出正解的。#include<bits/stdc++.h>#definefile(x)freopen(x,"r",stdin);#defineclos(x)freopen(x,"w",stdout);usingnamespacestd;intmain(){ file("a.in"......
  • 【Windows 11】安装 Android子系统 和 Linux子系统
    本文使用电脑系统:文章目录一、安卓子系统1.1安装WSA1.2使用二、Linux子系统2.1安装WSL以及WSL相关概念2.2安装一个Linux发行版2.21从MicrosoftStore安装2.22用命令安装2.23拓展三、拓展3.1存储位置3.2虚拟化技术3.3Windows虚拟内存3.3wsl帮助文件一、安卓子系......
  • linux上SQL Server 配置管理器的使用
    概述我们知道Windows平台上的SQLServer配置管理器是一个图形工具,用于管理与SQLServer关联的服务、配置SQLServer使用的网络协议以及管理SQLServer客户端计算机的网络连接配置。我们还可以使用SQLServer配置管理器来启动、暂停、恢复或停止服务,查看服务属性或更改服务......