私はTessnetライブラリを使ってリアルタイムOCRアプリケーションを作ろうとしています。この考え方は、ビットマップ配列に5つのイメージを格納し、それらをOCR(2秒ごとに実行)することです。コードは正常に動作しますが、多くのメモリを消費するようです。アプリケーションは約30分(約2GBのメモリを消費する)の間実行され、メモリ不足例外がスローされます。これを修正するためのアイデアですか?おかげTessnetが全メモリを使い切っています
は、これは私のOCR機能である:
private void makeOCR()
{
//Perform OCR in the image array
x1 = string.Empty;
//initialize OCR
Tesseract ocr = new tessnet2.Tesseract();
ocr.Init(null, "eng", true);
//loop through 5 bitmaps
for (int i = 0; i < 5; i++)
{
var result = ocr.DoOCR(imageArray[i], Rectangle.Empty);
foreach (tessnet2.Word word in result)
{
x1 = x1 + word.Text;
}
x1 = x1 + Environment.NewLine;
}
ocr.Dispose();
GC.Collect();
}
そして、私は新しいスレッドでタイマーチックイベント(2秒ごと)に、この関数を呼び出すしようとしています。
private void timer1_Tick(object sender, EventArgs e)
{
System.Threading.Thread t1 = new System.Threading.Thread(makeOCR);
t1.Start();
textBox1.Text = x1;
}