0

我尝试为 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);
}

请帮助我,任何人都可以指导我编写这段代码

谢谢!

4

2 回答 2

2

你在这个错误的轨道上,Tessnet 已经是围绕 Tesseract 的托管类包装器。您不使用 [DllImport],只需添加对程序集的引用并直接使用类。示例代码和汇编下载可在此处获得

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);
于 2011-02-08T13:55:12.353 回答
0

泛型类型无法编组,因为它们是 .NET 的原生类型。改为使用单词数组

于 2011-02-08T11:50:58.753 回答