我尝试为tessnet OCR库编写包装器。我收到一条错误,上面写着“无法编组'返回值':通用类型无法编组。”对于此代码部分
List<Word> k = OCRWrapper.DoOCR(new Bitmap(@"C:\Data\pdf2image\auto.png"), new Rectangle(0, 0, 55, 27));
我的包装类是
class OCRWrapper
{
[DllImport("TrueMarble.dll")]
public static extern List<Word> DoOCR(Bitmap b, Rectangle rec);
}
请帮帮我,任何人都可以指导我写这段代码
感谢名单!
答案 0 :(得分:2)
你这是错误的,Tessnet已经是Tesseract的托管类包装器。您不使用[DllImport],只需添加对程序集的引用并直接使用这些类。示例代码和程序集下载为available here。
Bitmap image = new Bitmap("eurotext.tif");
tessnet2.Tesseract ocr = new tessnet2.Tesseract();
ocr.SetVariable("tessedit_char_whitelist", "0123456789"); // If digit only
ocr.Init(@"c:\temp", "fra", false); // To use correct tessdata
List<tessnet2.Word> result = ocr.DoOCR(image, Rectangle.Empty);
foreach (tessnet2.Word word in result)
Console.WriteLine("{0} : {1}", word.Confidence, word.Text);
答案 1 :(得分:0)
通用类型无法编组,因为它们是.NET的原生类型。使用单词数组