Sto provando a utilizzare MODI in OCR per un programma di una finestra. Funziona bene per gli screenshots Afferro programmazione utilizzando win32 interoperabilità in questo modo:.NET OCRing Image
Questa immagine è poi salvata in un file e corse attraverso MODI come questo:
private string GetTextFromImage(string fileName)
{
MODI.Document doc = new MODI.DocumentClass();
doc.Create(fileName);
doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true);
MODI.Image img = (MODI.Image)doc.Images[0];
MODI.Layout layout = img.Layout;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < layout.Words.Count; i++)
{
MODI.Word word = (MODI.Word)layout.Words[i];
sb.Append(word.Text);
sb.Append(" ");
}
if (sb.Length > 1)
sb.Length--;
return sb.ToString();
}
Questa parte funziona bene, tuttavia, Non voglio OCR l'intero screenshot, solo alcune parti di esso. Provo a ritagliare l'immagine in modo programmatico come segue:
private string SaveToCroppedImage(Bitmap original)
{
Bitmap result = original.Clone(new Rectangle(0, 0, 250, 250), original.PixelFormat);
var fileName = "c:\\" + Guid.NewGuid().ToString() + ".bmp";
result.Save(fileName, original.RawFormat);
return fileName;
}
e quindi OCR a questa immagine più piccola, tuttavia MODI lancia un'eccezione; 'Errore di esecuzione OCR', il codice di errore è -959967087.
Perché MODI può gestire la bitmap originale ma non la versione più piccola presa da essa?
qualsiasi codice sorgente completo? – Kiquenet