0

Visual Studio 2013を使用してCでアプリケーションをプログラミングします。この目的でEmguCV(3.1)を使用します。 I各画像ファイルをフォルダから読み込み、何らかの処理を行います。私のアプリは、このようないくつかのものです:私、今EmguCV(3.1)のCvInvoke.cvReleaseImage()の使用

enter image description here

:私のアプリを実行しているから、約1分後に

private void SomeProcessesOnSingleImage(String filePath) 
{ 
    // Some Bitmap instances 
    // Some Image<Gray, Byte> instances 
    // Some Image<Bgr, Byte> instances 
    // Some UMat instances 

    // Do some processes 
    // Save file 
} 
private void BatchProcessor() 
{ 
    String[] filePathes = Directory.GetFiles(d.SelectedPath); 
    foreach(String path in filePathes) 
    { 
     SomeProcessesOnSingleImage(path); 
    } 
} 

、それが応答しないと、私は私のグラフィックカードについては、このメッセージが表示さ質問は以下のとおりです。

  1. 私はCvInvoke.cvReleaseImage()またはGarbage collectorそれを行うを使用してImage< , >UMatを解放すべきか?
  2. Bitmapと他の同様のインスタンスにusingを使用しますか?
  3. 上記の質問での場合の場合、どうすれば修正できますか?

私は、単一画像を使用しているとき(私がちょうどSomeProcessesOnSingleImageメソッドを呼び出すとき)、私のアプリは完全に機能することに注意してください。

UPDATE 1:私はOpenCLの(真UseOpenCL =)を使用

答えて

0

あなたは、 "ステートメントを使用して" して、画像オブジェクトによって使用されるメモリを解放する必要があります。 CvInvoke.cvReleaseImage()を使用することもできます。

関連する問題