2008-08-27 6 views
28

Как вы обмениваете tiff-файл с помощью интерфейса Tesseract в C#?
В настоящее время я знаю только, как это сделать, используя исполняемый файл.OCR с интерфейсом Tesseract

+3

не могли бы вы посоветовать мне, как вам удалось использовать Tesseract в C#? – mouthpiec 2010-03-11 10:44:38

+0

любой образец кода? – Kiquenet 2011-02-24 18:50:33

ответ

10

Исходный код, по-видимому, предназначен для исполняемого файла, вам может потребоваться немного переустановить материал, чтобы он был создан как DLL. У меня нет большого опыта работы с Visual C++, но я думаю, что это не должно быть слишком сложно с некоторыми исследованиями. Я предполагаю, что кто-то, возможно, уже сделал библиотечную версию, вы должны попробовать Google.

Как только у вас есть код tesseract-ocr в DLL-файле, вы можете импортировать этот файл в свой проект C# через Visual Studio и создать его классы-оболочки и делать все необходимые для вас функции маршалинга. Если вы не можете импортировать, то DllImport позволит вам вызвать функции в DLL из кода C#.

Затем вы можете взглянуть на исходный исполняемый файл, чтобы найти подсказки о том, какие функции вызывать для правильного отображения OCR изображения.

0

Отказ от ответственности: Я работаю Atalasoft

Наша OCR module supports Tesseract, и если это оказывается не достаточно хорошо, вы можете перейти на лучший двигатель и просто изменить одну строку кода (мы предоставляем общий интерфейс для нескольких движков OCR).

6

Программа C# запускает tesseract.exe, а затем считывает выходной файл tesseract.exe.

Process process = Process.Start("tesseract.exe", "out"); 
process.WaitForExit(); 
if (process.ExitCode == 0) 
{ 
    string content = File.ReadAllText("out.txt"); 
} 
6

я обнаружил сегодня, что EMGU теперь включает в себя оболочку Тессеракта. В то время как количество неуправляемых библиотек opencv lib может показаться немного сложным, нет ничего, что быстрая копия в выходной каталог не вылечилась. Оттуда сам процесс распознавания так просто, как три линия:

Tesseract ocr = new Tesseract(Path.Combine(Environment.CurrentDirectory, "tessdata"), "eng", Tesseract.OcrEngineMode.OEM_TESSERACT_ONLY); 
this.ocr.Recognize(clip); 
optOCR.Text = this.ocr.GetText(); 

«robomatics» вместе взятые a very nice youtube video, демонстрирующие простое, но эффективное решение.