当前位置: 首页 > 编程语言 > C#

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

时间:2023-04-10 19:55:04 C#

OCR在C#中使用MODI。图像需要从内存中读取,而不是磁盘我正在尝试使用MODI对内存中已有的位图执行OCR。我似乎无法找到解决方案,因为我找到的所有示例都使用create方法从磁盘获取图像并为OCR做好准备。但是,我已经在内存中有了图像,将它写入磁盘和从磁盘读取它会消耗太多时间。Bitmapbmp=...//实例化MODI.Document对象MODI.Documentmd=newMODI.Document();//Create方法从磁盘抓取图片,准备OCR。md.Create("C:\bmp.gif");//但我不想从磁盘读取:(//执行OCR。md.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH,true,true);//获取第一个(也是唯一一个图像)MODI.Imageimage=(MODI.Image)md.Images[0];//获取layout.MODI.Layoutlayout=image.Layout;不行,Create只有一个版本,取一个文件,做一个临时文件。将图像保存到其中。删除临时文件。使用Path.GetTempFileName()来执行此操作。字符串文件=Path.GetTempFileName();尝试{SaveImageToFile(图像,文件);//你决定如何最好地做到这一点md.Create(file);//等等}最后{File.Delete(file);}这个MODI.Document类可以从流中读取吗?像Image.FromStream(YourStream);所以你可以创建一个内存流并从中读取。您可以在维基百科en.wikipedia.org/wiki/Microsoft_Office_Document_Imagingen.wikipedia.org/wiki/List_of_optical_character_recognition_software上查看MODI/OCR信息使用MicrosoftOffice成像功能(需要MS-Office2007或更高版本,必须安装图像组件,并且必须将MODI添加到引用中)。privatestringOCR(stringfileToOCR){MODI.Documentmd=newMODI.Document();md.Create(fileToOCR);md.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH,true,true);MODI.Imageimg=(MODI.Image)md.Images[0];MODI.Layoutlayout=img.Layout;layout=img.Layout;stringresult=layout.Text;md.关闭(假);返回结果;调用函数可以是:以上是C#LearnTutorial:OCRwithMODIinC#。图像需要从内存中读取,而不是磁盘共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——privatevoidbutton6_Click(objectsender,EventArgse){MessageBox.显示(OCR("C:\temp\in.tif"));}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: