c# - 在 C# 中,Office 使用MODI进行 OCR 需要从内存读取图像而不是磁盘

  显示原文与译文双语对照的内容
122 3

我试图使用修改的位图,我已经在内存中的位图。我找不到一个解决方案,所有的例子都是从磁盘获取图像的。

Bitmap bmp =.. .
//Instantiate the MODI.Document object
MODI.Document md = new MODI.Document();
//The Create method grabs the picture from disk snd prepares for OCR. 
md.Create("C:\bmp.gif");//but I don't want to read from disk :(
//Do the OCR.
md.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true);
//Get the first (and only image)
MODI.Image image = (MODI.Image)md.Images[0];
//Get the layout.
MODI.Layout layout = image.Layout;
时间:原作者:0个回答

86 2

不能这样。只有一个版本的创建,它需要一个文件。制作临时文件。将图像保存到其中。Delete 临时文件使用 Path.GetTempFileName() 执行该操作。

string file = Path.GetTempFileName();
try {
 SaveImageToFile(image, file);//you decide how to best do this
 md.Create(file);
//etc.
}
finally {
 File.Delete(file);
}
原作者:
106 3

这里 MODI.Document 类是否可以从流中读取?

Image.FromStream(YourStream);

这样你就可以创建一个内存流并从中读取。

原作者:
122 2

你可以在维基百科上查看修改/ocr信息

en.wikipedia.org/wiki/Microsoft_Office_Document_Imaging

en.wikipedia.org/wiki/List_of_optical_character_recognition_software

原作者:
139 1

使用 Office 功能( 必须要求 ms office 2007或者更高版本,必须安装成像组件,并且必须将添加到引用中)的Microsoft映像对图像进行简单的编码。

private string OCR ( string fileToOCR)
{
MODI.Document md = new MODI.Document();
md.Create(fileToOCR);
md.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true);
MODI.Image img = (MODI.Image) md.Images[0];
MODI.Layout layout = img.Layout;
layout = img.Layout;
string result = layout.Text;
md.Close (false);
return result; 
}

调用函数可以是:

private void button6_Click(object sender, EventArgs e)
{
MessageBox.Show ( OCR ("C:tempin.tif")); 
} 
原作者:
...