C#:如何忽略来自 Tesseract 的日志?

C#: How to ignore logs from Tesseract?

我在 Docker Linux 图像上有一个 API 运行,它使用 Tesseract wrapper 从图像中读取文本。每次 Tesseract 处理图像时,它都会记录大量警告并进行通信:

| Estimating resolution as 682

| Empty page!!

| Estimating resolution as 682

| Empty page!!

| Warning: Invalid resolution 0 dpi. Using 70 instead.

| Estimating resolution as 1408

一个请求最多调用 Tesseract 50 次,这导致日志非常混乱。要记录我需要的信息,我使用 Microsoft.Extensions.Logging。我尝试在 appsettings.json 中禁用来自 Tesseract 的日志记录,如下所示:

 {
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information", 
      "Tesseract": "Error"
    }
  },

以及设置 "Tesseract": "None" 但 none 有帮助。我也尝试在 Tesseract 的文档中查找它,但没有找到任何东西。有什么方法可以仅禁用来自 Tesseract 的日志吗?

好的,我找到了一些解决方法。初始化 Tesseract 引擎实例后,删除

| Warning: Invalid resolution 0 dpi. Using 70 instead.

我需要为引擎手动设置 DPI:

_tesseractEngine.SetVariable("user_defined_dpi", "300"); 

并删除“空页!!”需要为 NUL

设置 debug_file
_tesseractEngine.SetVariable("debug_file", "NUL");

DefaultPageSegMode需要正确设置

_tesseractEngine.DefaultPageSegMode = PageSegMode.SingleBlock;