2011-04-18 3 views
1

이미지 처리를 위해 EMGU (opencv wrapper)를 사용하고 있습니다. 이미지를 폴더에서 하나씩로드하여 일부 작업을 수행하려고합니다. 다음 코드를 사용하여 using 블록에서 일부 작업을 수행합니다.EMGU에서 이미지를 올바르게 처리

 string[] filenames = Directory.GetFiles(directory); 


     foreach(string filename in filenames) 
     { 

      using (Image<Bgr, Byte> image = new Image<Bgr, byte>(filename)) 
      { 



      } 

     } 

그러나 코드를 실행할 때 주소 지정 또는 메모리 부족과 관련하여 예외가 발생할 때까지 응용 프로그램이 늘어나는 메모리 덩어리를 사용합니다.

어떤 조언이 필요합니까?

답변

1

이 코드는 정상적으로 보입니다. 내 생각 엔 각 이미지에 대해 수행중인 작업 중 하나 이상이 정리되지 않는 이미지의 복사본을 할당하는 것입니다.

+0

예, 문제 인 것 같습니다. 부주의로 만들어진 사본을 올바르게 폐기했는지 확인해야했습니다. 가비지 컬렉터가 처리해야합니까? – Christo

+0

GC는 관리 객체를 처리하지만 EmguCV는 관리되지 않는 API를 감싸는 래퍼 일뿐입니다. 즉 누수되는 메모리입니다. – dahlbyk

관련 문제