Linux 中的 C# 运行 tesseract(或任何命令)
C# run tesseract (or any command) in Linux
我有一个 运行 Tesseract 的 C# 包装器,它在 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;
}
}
您可以使用现有的 .NET Tesseract wrapper (e.g. via NuGet package)。它在 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
我有一个 运行 Tesseract 的 C# 包装器,它在 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;
}
}
您可以使用现有的 .NET Tesseract wrapper (e.g. via NuGet package)。它在 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