Я пытаюсь использовать этот пакет NuGet для распознавания текста:
https://github.com/charlesw/tesseract. После выполнения я получаю эту ошибку:
System.MissingMethodException
HResult=0x80131513
Message=Method not found: 'System.Reflection.Emit.AssemblyBuilder System.AppDomain.DefineDynamicAssembly(System.Reflection.AssemblyName, System.Reflection.Emit.AssemblyBuilderAccess)'.
Source=Tesseract
StackTrace:
at InteropDotNet.InteropRuntimeImplementer.CreateInstance[T]()
at Tesseract.Interop.LeptonicaApi.Initialize()
at Tesseract.Interop.TessApi.Initialize()
at Tesseract.Interop.TessApi.get_Native()
at Tesseract.TesseractEngine..ctor(String datapath, String language, EngineMode engineMode, IEnumerable`1 configFiles, IDictionary`2 initialOptions, Boolean setOnlyNonDebugVariables)
at Tesseract.TesseractEngine..ctor(String datapath, String language, EngineMode engineMode)
at WebDriverSelenium.Program.Main(String[] args) in C:\Users\Kingtotsky\source\repos\AutomationPractice\WebDriverSelenium\Program.cs:line 26
Я уже добавилмои сборочные ссылки для System.Reflection.Emit.tessdata находится в том же каталоге, что и файл Program.cs.Также установлен распространяемый Microsoft Visual C ++ для Visual Studio 2017 (x86 и x64).Тем не менее я не могу заставить это работать.Я новичок в C #.Вот как выглядит мой код:
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Drawing;
using System.Drawing.Imaging;
using System.Text;
using System.Reflection.Emit;
using Tesseract;
namespace WebDriverSelenium
{
class Program
{
static void Main(string[] args)
{
IWebDriver webDriver = new ChromeDriver(@"C:\Users\Kingtotsky\source\repos\ChromeDriver");
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
webDriver.Url = "https://www.google.com";
Screenshot screenshot = ((ITakesScreenshot)webDriver).GetScreenshot();
screenshot.SaveAsFile("test.png", ScreenshotImageFormat.Png);
TesseractEngine engine = new TesseractEngine("./tessdata", "eng", EngineMode.Default);
var ss = Pix.LoadFromFile($@"C:\Users\Kingtotsky\source\repos\AutomationPractice\WebDriverSelenium\bin\Debug\netcoreapp2.1\test.png");
var page = engine.Process(ss);
Console.WriteLine(page.GetText());
//var ocr = new AutoOcr();
//var result = ocr.Read(@"C:\Users\Kingtotsky\source\repos\AutomationPractice\WebDriverSelenium\bin\Debug\netcoreapp2.1\test.png");
//Console.WriteLine(result.Text);
Console.ReadLine();
webDriver.Close();
webDriver.Quit();
}
}
}
Я пытаюсь сделать скриншот веб-страницы и прочитать найденный там текст.Я застрял на том, что делать дальше.Ваша помощь очень ценится.Спасибо!