Raf*_*tro 2 c# linux tesseract
我有一个 C# 包装器来运行 Tesseract,它在 Windows 下运行良好。我查看注册表项并获取安装目录以便运行 Tesseract.exe。我想知道我该如何做同样的事情,因为我正在将 .Net Core 3.1 的代码移植到 Linux。我为 Windows 设置 Tesseract 信息的代码是:
private bool SetTesseractInfo(string dataDir = null)
{
try
{
//using (RegistryKey key = Registry.LocalMachine.OpenSubKey("Computer\\HKEY_LOCAL_MACHINE\\SOFTWARE\\Tesseract-OCR"))
using (RegistryKey key = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64).OpenSubKey("SOFTWARE\\Tesseract-OCR"))
{
if (key != null)
{
Object o = key.GetValue("Path");
if (o != null)
{
_tesseractExePath = Path.Combine(o.ToString(), "tesseract.exe");
if (String.IsNullOrEmpty(dataDir))
dataDir = Path.Combine(o.ToString(), "tessdata");
Environment.SetEnvironmentVariable("TESSDATA_PREFIX", dataDir);
}
o = key.GetValue("CurrentVersion");
if (o != null)
_tesseractVersion = o.ToString();
}
else
return false;
}
return true;
}
catch (Exception e)
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用现有的.NET Tesseract 包装器(例如通过NuGet 包)。它可以在 Linux 或 Mac 上正确启动 OCR。
顺便说一句,它不依赖于已安装的 Tesseract.exe。相反,它使用 libtesseract 和 libleptonica 库的 .NET 绑定来运行 OCR。你可以看看TesseractEngine.cs的实现
以下是 Ubuntu 20.04 的配置步骤:
cd ~/YourProject/x64 # Place "x64" directory on the same level with "tessdata"
sudo apt install libleptonica-dev
ln -s /usr/lib/x86_64-linux-gnu/liblept.so.5 libleptonica-1.78.0.so
sudo apt install libtesseract-dev
ln -s /usr/lib/x86_64-linux-gnu/libtesseract.so.4.0.1 libtesseract41.so
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1360 次 |
| 最近记录: |