2

以下は、いくつかのコードです

  1. ディレクトリを作成します
  2. MagickNet を使用して PDF を個別の BMP 画像に変換し、それをフォルダー (ImagePath) に保存します。
  3. 次に、TessNet2 を使用してそのフォルダー内の各画像をスキャンし、情報を解析します。

ImagePath フォルダーをスキャンする foreach ループを取得できないようです。何か助けはありますか?

現在、エラーは 'foreach' ステートメントにあり、「型 'char' を 'System.Drawing.Image' に変換できません」と表示されています。

static void Main(string[] args)
    {
        string ImagePath = exePath + "\\Images"; 
        if (!Directory.Exists(ImagePath))
        {
            Directory.CreateDirectory(ImagePath);
        }

        MagickReadSettings settings = new MagickReadSettings();
        settings.Density = new MagickGeometry(300, 300);

        using (MagickImageCollection images = new MagickImageCollection())
        {
            images.Read(@"D:\Test\ABStest.pdf",settings);
            int page = 1;
            foreach (MagickImage image in images)
            {
                image.Write(ImagePath + "\\ABS" + page + ".bmp");
                page++;
            }
        }



        foreach (Image item in ImagePath)
        {
            using (Bitmap bmp = new Bitmap(item))
            {
                tessnet2.Tesseract tessocr = new tessnet2.Tesseract();
                tessocr.Init(@"C:\Users\Matt Taylor\Documents\Visual Studio 2012\Projects\TessNet2\TessNet2\bin\Debug\tessdata", "eng", false);
                tessocr.GetThresholdedImage(bmp, Rectangle.Empty).Save("c:\\temp\\" + Guid.NewGuid().ToString() + ".bmp");
                // Tessdata directory must be in the directory than this exe
                Console.WriteLine("Multithread version");
                ocr.DoOCRMultiThred(bmp, "eng");
                //Console.WriteLine("Normal version");
                //ocr.DoOCRNormal(bmp, "eng");
            }
        }
    }       
4

3 に答える 3

2

ファイルをディスクに保存する必要はありません。MagickImage の .ToBitmap() メソッドを使用できます。

foreach (MagickImage image in images)
{
  using (Bitmap bmp = image.ToBitmap())
  {
    tessnet2.Tesseract tessocr = new tessnet2.Tesseract();
    // etc...
  }
}
于 2013-07-11T16:49:01.840 に答える