Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何显示从Tessnet(Tesseract)获取的tif坐标图像_C#_Ocr_Tiff_Tesseract - Fatal编程技术网

C# 如何显示从Tessnet(Tesseract)获取的tif坐标图像

C# 如何显示从Tessnet(Tesseract)获取的tif坐标图像,c#,ocr,tiff,tesseract,C#,Ocr,Tiff,Tesseract,我在tesseract引擎上运行OCR,将Tessernet作为C#包装器。我已经获得了识别单词的图像坐标,我想用这些坐标只显示页面的这一部分。我不在乎这个页面部分是作为一个单独的图像保存,还是只是以某种方式突出显示tif图像的部分 这是我目前的代码: TextWriter tw = new StreamWriter(@"U:\user files\bwalker\ocrTesting.txt"); Bitmap image = new Bitmap(@"u:\user

我在tesseract引擎上运行OCR,将Tessernet作为C#包装器。我已经获得了识别单词的图像坐标,我想用这些坐标只显示页面的这一部分。我不在乎这个页面部分是作为一个单独的图像保存,还是只是以某种方式突出显示tif图像的部分

这是我目前的代码:

TextWriter tw = new StreamWriter(@"U:\user files\bwalker\ocrTesting.txt");
            Bitmap image = new Bitmap(@"u:\user files\bwalker\2849257.tif");
            tessnet2.Tesseract ocr = new tessnet2.Tesseract();
            ocr.SetVariable("tessedit_char_whitelist", "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.,$-/#&=()\"':?"); // If digit only
            ocr.Init(@"C:\Users\bwalker\Documents\Visual Studio 2010\Projects\tessnetWinForms\tessnetWinForms\bin\Release\", "eng", false); // To use correct tessdata
            List<tessnet2.Word> result = ocr.DoOCR(image, System.Drawing.Rectangle.Empty);
            string Results = "";
            foreach (tessnet2.Word word in result)
            {
                Results += word.Confidence + ", " + word.Text + ", " +word.Top+", "+word.Bottom+", "+word.Left+", "+word.Right+"\n";
            } 
            using (StreamWriter writer = new StreamWriter(@"U:\user files\bwalker\ocrTesting2.txt", true))
            {
                writer.WriteLine(Results);
                writer.Close();
            }
            MessageBox.Show("Completed");

我已经解决了这个问题。在获得单词的坐标后,我这样做是为了显示相关的图像:

System.Drawing.Rectangle dueDateRectangle = new System.Drawing.Rectangle(dueDateRect1, dueDateRect2, dueDateRect4 - dueDateRect1, dueDateRect3 - dueDateRect2);
System.Drawing.Imaging.PixelFormat format = image.PixelFormat;
Bitmap cloneBitmap = image.Clone(dueDateRectangle, format);
MemoryStream ms = new MemoryStream();
cloneBitmap.Save(ms, ImageFormat.Png);
ms.Position = 0;
BitmapImage dueDateImage = new BitmapImage();
dueDateImage.BeginInit();
dueDateImage.StreamSource = ms;
dueDateImage.EndInit();
dueDateImageBox.Source = dueDateImage;
System.Drawing.Rectangle dueDateRectangle = new System.Drawing.Rectangle(dueDateRect1, dueDateRect2, dueDateRect4 - dueDateRect1, dueDateRect3 - dueDateRect2);
System.Drawing.Imaging.PixelFormat format = image.PixelFormat;
Bitmap cloneBitmap = image.Clone(dueDateRectangle, format);
MemoryStream ms = new MemoryStream();
cloneBitmap.Save(ms, ImageFormat.Png);
ms.Position = 0;
BitmapImage dueDateImage = new BitmapImage();
dueDateImage.BeginInit();
dueDateImage.StreamSource = ms;
dueDateImage.EndInit();
dueDateImageBox.Source = dueDateImage;