C#でModiをOCRに使用します。ディスクではなく、メモリから画像を読む必要があります
質問
私はすでにメモリにあるビットマップでModiを使用してPerfom OCRを使用しようとしています。私が見つけたすべての例が作成方法を使用してディスクから画像をつかみ、OCRのために準備するので、私はこれに対する解決策を見つけることができないようです。しかし、私はすでにメモリとライティングと読み取りに画像を持っていますディスクとの間は、時間がかかりすぎます。
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;
解決
できません。 createには1つのバージョンのみがあり、ファイルを取得します。温度ファイルを作成します。画像を保存します。 TEMPファイルを削除します。 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);
}
他のヒント
このmodi.documentクラスは、ストリームから読むことができますか?以下のような
Image.FromStream(YourStream);
そうすれば、メモリストリームを作成して、そこから読むことができます。
WikipediaでModi / OCR情報を確認できます
en.wikipedia.org/wiki/microsoft_office_document_imaging
en.wikipedia.org/wiki/list_of_optical_character_recognition_software
Microsoft Officeのイメージング機能を使用した画像をOCRする最も簡単なコード(MS-Office 2007以降が必要な場合、イメージングコンポーネントをインストールし、MODIを参照に追加する必要があります)。
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:\\temp\\in.tif"));
}
所属していません StackOverflow