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 に答える